APIを使ってNotionDBにデータを保存したく、やり方を調べた
まずは、notion の integrationsページにいく
ここで、新しいインテグレーションを作る必要があるが、これはworkspaceに対して管理者権限がないと行えない
なので、権限をつけてもらうか、オーナーにインテグレーションを作成してもらう必要がある
トークンを発行できたとして話を進めると、次にNotionDBのURLを取得する
すると、以下のような構成になっているので データベースID を控えておく
https://www.notion.so/myworkspace/<データベースID>?v=<ビューID>
あとはこのドキュメントを見て進める
こんな感じのテーブルに対して挿入したい場合

次のようなリクエストで投稿できる
curl -X POST https://api.notion.com/v1/pages \ -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \ -H "Content-Type: application/json" \ -H "Notion-Version: 2022-06-28" \ --data '{ "parent": { "type": "database_id", "database_id": "<データベースID>" }, "properties": { "Grocery item": { "type": "title", "title": [{ "type": "text", "text": { "content": "Tomatoes" } }] }, "Price": { "type": "number", "number": 1.49 }, "Last ordered": { "type": "date", "date": { "start": "2021-05-11" } } } }'
ここで $NOTION_API_KEY はインテグレーションを作成して発行されたトークンを設定する
そして、database_id に、URLから取得した<データベースID>を設定する
他に忘れてはいけないのが、リクエスト HEADで
- Content-Type: application/json
- Notion-Version: 2022-06-28
は忘れず設定する
Notion Version は Notion API のバージョンのことで、下のドキュメントによると2022-06-28が最新らしいので、固定でこれを入れておく
送信するプロパティの型(titleやnumber、dateなど)が他にどのようなものがあるかは以下を確認する
これで実行すると、NotionDBに値が挿入された