Notion APIを導入する

ついにPublic beta版のNotion APIが公開されました。


前提

・初めてNotion API触ります

目標

・Notion APIを使って出来ることをやってみる

補足

Notion APIの概要

・Notion APIは特定の1ページのデータベースを操作できるように発行される(特定の1ページの編集者として追加するようなイメージ)
・Notion APIを発行することをintegrationと呼ぶ

実装

0. 【要確認】始める前に

・NotionのワークスペースにAdminユーザとしてログインする必要があります
・curlコマンドを使用します

1. Notion APIを発行する(integrationを作成する)

こちらからintegrationを作成します。


Nameを適当に決めて、APIを発行したいWorkspaceを選択します。

画像1

私はGoogle_Calendarという名前にしました。

スクリーンショット 2021-05-14 10.49.17


2. Notion APIを編集者として特定ページに招待

自分のTodo ListのページにGoogle CalendarのAPIをInviteします。(↓は公式のチュートリアルより)

画像3

3. データベースIDの取得

次に上記でAPIを招待したデータベースIDを取得します。

2.でAPIを招待したページをブラウザ(Chromeやsafari)で開きます。下記の下線部分がデータベースIDです!

スクリーンショット 2021-05-14 10.56.38

これでこのページを操作する準備が整いました。

4. テスト

下記コマンドをterminalで実行します。MY_NOTION_TOKENが1.で発行したSecrets、DATABASE_IDが3.で確認したものになります。({}は外してくださいね!)

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"
           }
         }
       ]
     }
   }
 }'

成功すると以下のようなレスポンスが返ってきます。失敗した場合、上記記述をもう一度確認してみてください。

スクリーンショット 2021-05-14 10.35.14

Notionを確認するとページが追加されています。(2度実行したため2つ追加されています。)

スクリーンショット 2021-05-14 10.35.02

5. 出来ること

(まだNotionのAPI Referenceに4.のPOSTリクエストがない状態でした)

『データベース編』

データベース内すべてのページを取得する

curl -X POST 'https://api.notion.com/v1/databases/{DATABASE_ID}/query' \                                                                                                             1212ms  金  5/14 11:58:19 2021
          -H 'Authorization: Bearer {MY_NOTION_TOKEN}' \
          -H 'Notion-Version: 2021-05-13' \
          -H "Content-Type: application/json" \
        --data '{
      "filter": {
        "or": []
     },
      "sorts": []
    }'


まとめ

Notion APIを触ってみました。また追記していきます。

ここから先は

0字

¥ 300

この記事が気に入ったらチップで応援してみませんか?