Notion API의 기본 키 (공식 Getting Started의 느슨한 번역)

6629 단어 Notionapi
ぇぺぺrs. Nochion. 코 m / 드 cs / 갓찐 g-s r d

이쪽의 기사를 자꾸 일본어 번역한 것이 됩니다.

전제


  • 대상 작업 공간의 Admin임
  • curl 명령 사용 가능
  • 라고 써 있지만 별도로 Postman이라든지, HTTP 요청이 던지면 좋을 것


  • 절차



    Integration 만들기



    여기 로부터 새로운 Integration 을 작성합니다.



    이름, 이미지, 대상 작업공간을 입력하고 다음.

    다음 화면에서 Internal Integration Token 라는 Token을 얻을 수 있으므로 삼가해 둡니다.



    통합 및 대상 페이지, 데이터베이스 공유



    Integration은 사용자와 기사 공유와 같은 형식입니다. Integration은 처음에는 모든 페이지, 데이터베이스에 액세스할 수 없습니다. API를 사용하려면 Integration과 특정 기사나 데이터베이스를 공유해야 합니다.

    사용자를 초대하기 위해 API에서 액세스하려는 페이지와 데이터베이스를 Integration과 공유합니다.
    (이번은 알기 쉽기 때문에 Database로 실시합니다)



    이 시점에서 Integration은 대상 데이터베이스에 대한 read, write, edit 권한을 갖습니다. 이 절차는 모든 사용자가 작업할 수 있습니다.

    데이터베이스, 페이지 ID 얻기



    그런 다음 데이터베이스 ID가 필요합니다.
  • 앱의 경우
  • Share → Copy link에서 URL을 가져오고 URL의 마지막 세그먼트가 ID가됩니다.

  • 웹의 경우
  • 대상 데이터베이스를 전체 페이지에서 열고 URL의 마지막 세그먼트가 ID가됩니다.

  • https://www.notion.so/myworkspace/a8aec43384f447ed84390e8e42c2e089?v=...
                                      |--------- Database ID --------|
    

    데이터베이스에 항목 추가



    Notion에서 데이터베이스의 Item은 페이지입니다. 따라서 create a page 의 엔드포인트를 사용하여 대상 데이터베이스 아래에 페이지를 만듭니다.

    다음과 같은 POST 요청을 보냅니다. (물론 curl 이외에도 뭐든지 OK입니다)
    curl -X POST https://api.notion.com/v1/pages \
      -H "Authorization: Bearer {MY_NOTION_TOKEN}" \
      -H "Content-Type: application/json" \
      -H "Notion-Version: 2021-05-13" \
      --data '{
        "parent": { "database_id": "{DATABASE_ID}" },
        "properties": {
          "Name": {
            "title": [
              {
                "text": {
                  "content": "Yurts in Big Sur, California"
                }
              }
            ]
          }
        }
      }'
    

    성공하면 200에서 다음과 같은 응답이 반환됩니다.
    {
        "object": "page",
        "id": "31840a55-35d2-4320-91e9-*********",
        "created_time": "2021-05-26T13:35:16.271Z",
        "last_edited_time": "2021-05-26T13:35:16.271Z",
        "parent": {
            "type": "database_id",
            "database_id": "4a212d83-bfb3-4f2f-8dd1-e**********"
        },
        "archived": false,
        "properties": {
            "Name": {
                "id": "title",
                "type": "title",
                "title": [
                    {
                        "type": "text",
                        "text": {
                            "content": "Yurts in Big Sur, California",
                            "link": null
                        },
                        "annotations": {
                            "bold": false,
                            "italic": false,
                            "strikethrough": false,
                            "underline": false,
                            "code": false,
                            "color": "default"
                        },
                        "plain_text": "Yurts in Big Sur, California",
                        "href": null
                    }
                ]
            }
        }
    }
    

    제대로 데이터가 만들어졌습니다.



    요약



    Notion의 API의 기본은 이런 느낌일까 생각합니다.
  • 생성하는 사용자는 Admin 권한이 필요합니다
  • Integration을 만들고 Token을 얻습니다
  • 대상 데이터베이스, 페이지에 Integration 추가
  • 대상 데이터베이스, 페이지 ID 얻기
  • 원하는 동작에 맞는 엔드 포인트에 요청을 던집니다.

    기다린 Notion API의 출시군요!

    데이터의 수집은 물론 뒤틀릴 것 같지만, 여러가지 사용법이 있을 것 같습니다. 점점 활용해 갑시다.
  • 좋은 웹페이지 즐겨찾기