노션에 추가한 블럭은 블럭 ID를 통해 삭제할 수 있습니다. 우선 블럭의 ID를 알아야 하는데, 다행히 우리는 이미 노션 페이지의 블럭을 확인하는 함수를 가지고 있습니다. API 등록 시 페이지 연결을 테스트할 때 만들었던 것이죠!
블럭 조회
이전에 해봤지만, 함수를 사용해서 페이지를 다시 한 번 확인해보겠습니다
import requests # requests페이지참고
notionApiKey = notionApiKey # 사용자의 API키입력
# 함수 페이지 참고
# 함수요약 페이지 참고
def getBlock(notionPageId):
url = f"https://api.notion.com/v1/blocks/{notionPageId}/children"
headers = {
"Authorization": f"Bearer {notionApiKey}",
"Content-Type": "application/json",
"Notion-Version": "2022-06-28"
}
response = requests.get(url, headers=headers)
if response.status_code != 200:
print(f"[오류] 노션 블럭 조회 실패: {response.status_code}, {response.text}")
return []
blocks = response.json().get("results", [])
return blocks
notionPageId = '1658844c10b7807b8391d5a11e7a4dff' # 연동할 페이지 ID입력
getBlock(notionPageId)
Python
복사
블럭삭제
블럭 삭제 함수는 해당 블럭의 ID만 있으면 됩니다. 블럭 ID가 고유값이기 때문에 페이지를 지정하지 않아도 되며, requests의 delete 함수로 삭제 요청을 할 수 있습니다.
# 블록 삭제 함수
def deleteBlock(blockId):
url = f"https://api.notion.com/v1/blocks/{blockId}"
headers = {
"Authorization": f"Bearer {notionApiKey}",
"Content-Type": "application/json",
"Notion-Version": "2022-06-28" # Notion API 버전
}
response = requests.delete(url, headers=headers)
print(f"{blockId} 삭제!" if response.status_code == 200 else f"{blockId} 삭제 실패: {response.status_code}")
# 삭제할 블록 ID
blockId = "1758844c-10b7-8113-ad3e-f57deb5f7abe"
deleteBlock(blockId)
Python
복사
블럭 검색의 필요성
블럭의 ID를 확인하고 deleteBlock 함수로 제거하는 것은 수작업입니다. 이를 자동화할 수 있을까요? 자동화를 위해서는 먼저 원하는 조건의 블록을 찾을 수 있어야 합니다. 블록을 자유롭게 찾을 수 있다면 삭제, 업데이트, 추가 작업을 더욱 효율적으로 수행할 수 있습니다.
블록을 추가할 때 사용자가 직접 ID를 지정할 수 있다면 좋겠지만, 아쉽게도 노션은 이러한 기능을 제공하지 않습니다.