Notion - 1. Integration & Setting
Notion 과 통합하여 사용하는 Automateio(https://automate.io/) 를 잘 쓰고 있었는데....
여기서 서비스를 종료한다는 공지를 올렸다!
정확하겐 노션에 인수되며 서비스를 종료한 것 (https://automate.io/blog/closing-down-automate-io/)
Zapier로 대체하기 위해 시도해 봤으나 하고자 하는 기능이 부족하여 Notion API를 직접 사용하기로 했다.
기준은 역시 공식가이드 기준
1. Integration 생성
1. 내 노션에 로그인 후 https://www.notion.com/my-integrations 에 접속
2. 새 API 통합 클릭
3. 이름, 로고, 연결한 워크스페이스를 설정 후, API에서 읽고자하는 기능에 대해 선택하여 '제출'
4. 그 후 생성된 key값을 확인 한다
해당 Key 값은 API 전송 시 Bearer Token 값이 된다.
호출 예시
GET /v1/pages/b55c9c91-384d-452b-81db-d1ef79372b75 HTTP/1.1
Authorization: Bearer {INTEGRATION_TOKEN}
5. API 통합 유형 설정이 가능하다.
작업 편의성을 위해 워크스페이스의 관리자 계정으로 API를 세팅하는게 좋다.
6. 완료 하면 아래와 같이 작성된 API Integration 을 볼 수 있다.
2. Notion Database에 생성한 Integration 연결
Notion에서는 하나하나의 페이지를 Database 라고 표현한다.
API를 사용하고자 하는 Database 에서 생성한 Integration 을 연결 해줘야만 해당 페이지를 API 를 통해 연동할 수 있다.
1. Notion 내 API 연결을 원하는 Database 하나를 선택
2. 페이지 최상단의 .... 를 클릭!
3. '연결 추가' 버튼으로 앞서 만든 Integration 을 연결한다.
3. HTTP request 호출
호출을 위해서는 앞서 생성한 Key(Authorization)과 Notion의 버전, Database의 ID가 있어야 한다.
Notion 의 버전은 날짜 형태로 되어 있다.
Notion의 버전리스트는 아래와 같다
https://developers.notion.com/reference/changes-by-version
2022-06-28, 2022-02-22, 2021-08-16, 2021-05-13
cURL 로 호출 시
curl --location --request POST 'https://api.notion.com/v1/databases/$NOTION_DATABASE_ID' \
--header 'Authorization: Bearer $NOTION_API_KEY' \
--header 'Notion-Version: 2022-06-28' \
--header 'Content-Type: application/json' \
참고 사이트
https://developers.notion.com/docs/create-a-notion-integration
Create an integration
Make your first request to the Notion API.
developers.notion.com