NotionのAPI操作

内容

NotionのAPIを操作する際のメモです。

対象APIバージョン

  • 2022-06-28

最初にやること

  1. 下記でインテグレーションを作成し、権限を設定する。その際にAPIトークンが発行されるのでメモする
    https://www.notion.so/my-integrations

  2. 対象のデータベースがあるページの設定から「コネクト」の一覧より、上記インテグレーションを選択する(共有とは異なるので注意)

データベース

データベースのオブジェクトの取得

データベースのIDは、対象のデータベースのURLを確認して、下記のデータベースIDの部分。
メソッドはGETではなく、POSTな点に注意。

https://www.notion.so/ワークスペース名/データベースID?v=ビューID

$ curl -s -XPOST https://api.notion.com/v1/databases/データベースのID/query \
   -H 'Authorization: Bearer 'secret_XXXXX'' \
   -H "Content-Type: application/json" \
   -H "Notion-Version: 2022-06-28"

データベースへのオブジェクトの追加

基本的には上記で確認したJSONの形式でPOSTすればOK。
エンドポイントが変わるのに注意。(databasesではなくpogesとなる)
結構階層が深いので、雑に作るとエラーになるので注意。必ず、上記でKeyを確認すること。

$ curl -XPOST https://api.notion.com/v1/pages \
  -H 'Authorization: Bearer 'secret_XXXXX''\
  -H "Content-Type: application/json"\
  -H "Notion-Version: 2022-06-28"\
  -d '{
  "parent": {
    "database_id": "XXXXXX"
  },
  "properties": {
    "Weight": {
      "type": "rich_text",
      "rich_text": [
        {
          "type": "text",
          "text": {
            "content": "20"
          }
        }
      ]
    }
  }
}'