파이선으로 Notion API 세팅 및 활용 방법에 대해 기재해보려고 합니다.
Search는 Notion API의 첫단추와도 같은 명령어입니다. BOT이 탐색할 수 있는 Database와 Page를 찾는 Search에 대해 알아봅시다.
지난번에 title 정보를 알려면, Properties가 어떻게 구성되어 있나 알아야 된다고 했습니다. 생각보다 복잡하므로, 찬찬히(?!) 설명 드리도록 할께요.
이제 properties 구조에 대해 이해하였으니 title 을 가져올 차례입니다. pages에 결과 정보를 집어 넣습니다. pages['results'] 라는 값을 꺼내보시면 하나의 뭉테기 정보(뭉텅이 강원도 사투리)가 Page 하나의 정보라 보시면 됩니다.
Notion API에 rich_text 형태로 업데이트 해달라고 하면, 업데이트를 해주는데, rich_text 라는게 까다롭습니다. 뭐만 하면 형식에 맞춰달라 에러를 뱉어내니까요. 하지만... (자세한 내용은 포스트에)
업데이트가 준비된 형태의 값으로 API를 호출하여 실제로 바꿔지는지 확인해봅니다.
그동안의 노션 API 정복기 1~6 편을 소스 코드로 정리했습니다. 이런 친절한 블로거를 봤나 (여기서 봤다고 소문내기!!)
이번화 부터는 각 method의 사용방법을 예제로 알아보려고 합니다.
query에 대해 알아보았으니, 다음 parameter 값을 알아보도록 합시다.
Retrieve 생소한 말입니다. 컴퓨터에서는 Retrieve가 검색하다는 의미로 쓰입니다. (search 라고 하면 헛갈리나..)
Create a page를 하려면 API bot이 권한이 있어야 합니다. 공유 클릭해서 bot을 추가하면 되는데 과연 최상단에 bot을 추가할 수 있을까요?
네오피자 알바 아닙니다. 근데 네오피자 진짜 맛있어요. 위의 하늘색 네모 블럭 하나가 block 을 뜻합니다. 저거를 children에 block 정보를 집어넣으면, page가 생성될때 블록도 같이 생성되게 됩니다
Create a page 를 한번 해보았다면 Update page 쯤은... 쉽게 할수 있지 않을까요? 하지만 친절한 찬찬은 찬찬히 Update page에 대해 설명해 드립니다.
API 집중분석 - Retrieve a page에도 일부 언급되어 있지만, 여기서도 한번 더 짚고 넘어가보려고 합니다
page를 알아보았으니 이제는 block에 대해 알아보겠습니다. Retrieve a block 보니까 parameter에 block_id 가 떡하니 있는데 block_id를 어디서 조회해와야 되나요?
링크를 열고 좌측 메뉴의 순서를 보니 아니... Add a block 이나 Create a block 같은건 없고, Update a block이 먼저 나왔네요.
block 은 create 가 없고 append 라고 있습니다. append 파이선 써보신 분이면 왠지 익숙한 단어죠? 리스트에서 추가할때 쓰는 method 입니다. 마찬가지로 block 을 추가한다는 의미입니다.
block_id 를 알아야 Delete a block 을 할수 있다는건 다들 예측하셨을겁니다. 특정 block_id 를 콕 집어서 지우기 위해 blocks.children.list 를 호출해보겠습니다.
database 는 page 묶음입니다. query 를 통해서 원하는 database 내의 page를 쏙쏙 뽑아낼 수 있습니다. 우선 search를 통해서 database_id를 확인하고, retrieve를 해보겠습니다.
parent 값을 page의 parent, 즉, page가 부모인 곳에서 생성이 가능합니다. database가 부모인 곳에서의 생성은 지원하지 않습니다. page_id를 알려면, search 를 활용하시면 됩니다.
Update database를 해보겠습니다. database의 title이나 properties 속성을 변경할 수 있습니다.
database의 정보를 알아내기 위해 retrieve를 진행해보겠습니다. database_id를 알려면 search를 사용해야 합니다.
API Bot 이 조회할수 있는 전체 유저를 조회하는 명령이 있습니다. user_list = notion.users.list() 물론 page_size와 start_cursor를 지원합니다.
Sync Block 에 관해서 연재하려고 왔습니다. 마우스 오버를 하면 연하게 적색 상자가 포커스 되어 보이는데, 이 블럭이 sync block 입니다.