찬찬의 Notion API 정복기 18 - API 집중분석 - Delete a block

소찬 (Chan)·2022년 11월 8일
0
post-thumbnail

Reference API URL : Delete a block

block_id 를 알아야 Delete a block 을 할수 있다는건 다들 예측하셨을겁니다.
특정 block_id 를 콕 집어서 지우기 위해 blocks.children.list 를 호출해보겠습니다.

blocks = notion.blocks.children.list(block_id=page_id)
pprint(blocks)

결과값을 한번 살펴볼까요?

{'block': {},
 'has_more': False,
 'next_cursor': None,
 'object': 'list',
 'results': [{'archived': False,
              'created_by': {'id': 'edfacc72-eb15-467b-9fdb-d5b656e1c77b',
                             'object': 'user'},
              'created_time': '2022-04-02T11:59:00.000Z',
              'has_children': False,
              'id': '27b0ad2f-5698-4f7c-ab07-00f174042264',
              ...

'results'[0]번째 'id' 값이 첫번째 blockid 값입니다.
[1]번째가 두번째 blockid 값이고요, 첫번째 block을 삭제해보려고 합니다. 그럼 block_id 값을 변수에 입력해 보겠습니다. 그런뒤 delete 를 호출해보겠습니다.

target_block_id = blocks['results'][0]['id']
notion.blocks.delete(block_id=target_block_id)

삭제가 되시는 것을 보실겁니다. 문서 초반을 보시면 archived: True라는 것을 보셨을 겁니다. archived: true는 휴지통에 있는 상태를 뜻하며, 이 때 blockdelete 시도 시 호출은 되나 실제로 삭제가 되지 않습니다. 복원을 해야 삭제를 할 수 있습니다.
복원은 pages.update(page_id=target_page_id, archive=False)를 호출하셔서 쓰셔서 archive: False로 바꾸시거나 노션 휴지통에서 복원하셔서 blocks.delete를 실행해주셔야 해당 block의 삭제가 가능합니다.

profile
QA Specialist

0개의 댓글