Notion APIってなにができるの?
一般のユーザができることはないかもしれないです。
開発者向けの機能で、NotionのデータをNotion以外のサービスやアプリケーションで利用できます。
イメージつかないと思いますので、サクッとデータを取得してみましょうか。
ターミナルからさくっとNotionのデータを取得してみる
最も早くて簡単な方法でNotionAPIを使用してデータを取得してみましょう。
今回は、ターミナルを使用してデータ取得、確認してみます。
準備
まずはインテグレーションを作成しましょう。
公式のチュートリアルを見ながら作成してみてください。
ターミナルからAPI接続して、取得したデータを確認する
インテグレーションで作成したシークレットトークン
と、ページID
、データベースID
など分かればOKです。
確認方法はコチラ。
雛形
https://api.notion.com/
のあとにバージョンを指定(v1)。
次に、要素の種類(pages,database,blocks)を指定。
さらにその後にアクセスする要素のIDを指定します。
データベース
ターミナルに下記のコードを貼り付けてEnter。
curl 'https://api.notion.com/v1/databases/データベースID' \ -H 'Notion-Version: 2022-06-28' \ -H 'Authorization: Bearer '"シークレットトークン"''
ページ
ターミナルに下記のコードを貼り付けてEnter。
curl 'https://api.notion.com/v1/pages/ページID' \ -H 'Notion-Version: 2022-06-28' \ -H 'Authorization: Bearer '"シークレットトークン"'' \
実行結果
ターミナルでは整形されていないですが、このようなデータが取得できます(データベース取得例)。
{ "object": "database", "id": "76a9458e-0478-41ec-a55c-e5879ca62948", "cover": null, "icon": null, "created_time": "2023-05-06T02:24:00.000Z", "created_by": { "object": "user", "id": "4d882475-cedf-424a-b35c-219a28cd2ea3" }, "last_edited_by": { "object": "user", "id": "4d882475-cedf-424a-b35c-219a28cd2ea3" }, "last_edited_time": "2023-05-20T06:55:00.000Z", "title": [ { "type": "text", "text": { "content": "Notion API test", "link": null }, "annotations": { "bold": false, "italic": false, "strikethrough": false, "underline": false, "code": false, "color": "default" }, "plain_text": "Notion API test", "href": null } ], "description": [], "is_inline": false, "properties": { "Date": { "id": "%3DLF%5B", "name": "Date", "type": "created_time", "created_time": {} }, "Slug": { "id": "Dhnu", "name": "Slug", "type": "rich_text", "rich_text": {} }, "Tags": { "id": "Kcvw", "name": "Tags", "type": "multi_select", "multi_select": { "options": [ { "id": "df8555db-ca24-4919-b14d-b6e516f12d40", "name": "nextjs", "color": "yellow" }, { "id": "7d343a19-0e27-498c-9659-0b24201ab759", "name": "react", "color": "red" }, { "id": "9d80bcc6-4fdf-4952-b6bb-c8afd8fc228c", "name": "Notion", "color": "gray" } ] } }, "Published": { "id": "O%5EM%3E", "name": "Published", "type": "checkbox", "checkbox": {} }, "thumb": { "id": "gd%5BW", "name": "thumb", "type": "files", "files": {} }, "Description": { "id": "ms%3D~", "name": "Description", "type": "rich_text", "rich_text": {} }, "Name": { "id": "title", "name": "Name", "type": "title", "title": {} } }, "parent": { "type": "workspace", "workspace": true }, "url": "https://www.notion.so/76a9458e047841eca55ce5879ca62948", "public_url": null, "archived": false }
上記はデータベースのデータを取得した例です。
タイトルとかプロパティとかチェックボックスのデータが取得できました。
本文は取得できていません。本文を取得したい場合はページIDになります。
少しわかりにくいですが、例えばブログ一覧のページはデータベース、記事詳細ページはページといったイメージです。
ここで取得したデータを外部のサービスやアプリケーションで使用できるようになります。
もちろんNotionをヘッドレスCMSとして使用することも可能です。
公式のリファレンスはこちらです。
最後に
今回は手軽な方法でNotionAPIを使用してデータを取得してみました。
この記事があなたの参考や助けになっていれば幸いです。
最後までありがとうございました。