以下の説明があった。私のアプリも 2021-08-16 版にアップデートする予定。
9月28日現在、新しい API とブロックタイプは古いバージョンではサポートされない
まだ
2021-05-11
や 2021-05-13
のユーザは、バージョンを 2021-08-16
に変更し、 9月28日以降に導入されたブロックタイプや API を使用すること。9月28日以前に導入された API 機能は、古い API で引き続き利用できる。
今回、コードブロック、インラインデータベース、データベースページブロックの取得・追加・更新ができるようになった。
コードブロック
子ブロックの追加 と 子ブロックの取得 にてコードブロックが取得できるようになった。試しに、コードブロックの取得をしてみる。サンプルとして、スクリプト自身のコードブロックを取得してみる。ただし、この例では子ブロックではなく、直接ブロックを取得している。
#!/bin/sh curl 'https://api.notion.com/v1/blocks/0a266cec95704acb9854d17dafbec56d' \ -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \ -H 'Notion-Version: 2021-08-16'
取得した JSON はこちら。上の code がそのまま content に入っていることがわかる。
{ "object": "block", "id": "0a266cec-9570-4acb-9854-d17dafbec56d", "created_time": "2021-11-10T23:29:00.000Z", "last_edited_time": "2021-11-10T23:41:00.000Z", "has_children": false, "archived": false, "type": "code", "code": { "text": [ { "type": "text", "text": { "content": "#!/bin/sh\ncurl 'https://api.notion.com/v1/blocks/bb78a5a99a964fbebf5a6655a10a6516' \\\n -H 'Authorization: Bearer '\"$NOTION_API_KEY\"'' \\\n -H 'Notion-Version: 2021-08-16'", "link": null }, "annotations": { "bold": false, "italic": false, "strikethrough": false, "underline": false, "code": false, "color": "default" }, "plain_text": "#!/bin/sh\ncurl 'https://api.notion.com/v1/blocks/bb78a5a99a964fbebf5a6655a10a6516' \\\n -H 'Authorization: Bearer '\"$NOTION_API_KEY\"'' \\\n -H 'Notion-Version: 2021-08-16'", "href": null } ], "language": "bash" } }
インラインデータベースとデータベースページブロック
子データベースブロックをアップデートしたいときには、データベースのアップデートを使用する。データベースのタイトルを変更した場合、子データベースブロックの名前も自動的に変更される。
検証として 子ブロックの取得 を使い、Changelog まとめのトップページの子ブロックを取得してみる。
#!/bin/sh curl 'https://api.notion.com/v1/blocks/6a8efd665f694b3996c3089f680003e0/children?page_size=100' \ -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \ -H "Notion-Version: 2021-08-16"
返ってきた JSON はこちら。少し長いが中央部に「child_database」と子データベースが入っていることが確認できた。
{ "object": "list", "results": [ { "object": "block", "id": "3cf3c316-f775-446a-87c1-9470883111ed", "created_time": "2021-11-08T22:49:00.000Z", "last_edited_time": "2021-11-10T11:16:00.000Z", "has_children": false, "archived": false, "type": "paragraph", "paragraph": { "text": [ { "type": "text", "text": { "content": "Notion API 公開時にアプリを作ったが、その後の更新に追いついていないので、ChangeLog を読みあさることにした。このページ内で実際にサンプルを動かしながら理解したいと思う。", "link": null }, "annotations": { "bold": false, "italic": false, "strikethrough": false, "underline": false, "code": false, "color": "default" }, "plain_text": "Notion API 公開時にアプリを作ったが、その後の更新に追いついていないので、ChangeLog を読みあさることにした。このページ内で実際にサンプルを動かしながら理解したいと思う。", "href": null } ] } }, { "object": "block", "id": "c7f75678-bd90-4bb0-a0cc-1d83f4711b82", "created_time": "2021-11-10T22:16:00.000Z", "last_edited_time": "2021-11-10T22:23:00.000Z", "has_children": true, "archived": false, "type": "child_page", "child_page": { "title": "自分で検証する場合" } }, { "object": "block", "id": "c63c00ad-201d-4bed-82b0-18dfca9b6ba0", "created_time": "2021-11-08T21:41:00.000Z", "last_edited_time": "2021-11-10T22:35:00.000Z", "has_children": false, "archived": false, "type": "child_database", "child_database": { "title": "Changelogs" } }, { "object": "block", "id": "6621c546-ee6e-48af-9385-68e801d115b4", "created_time": "2021-11-08T22:50:00.000Z", "last_edited_time": "2021-11-08T22:50:00.000Z", "has_children": false, "archived": false, "type": "paragraph", "paragraph": { "text": [] } } ], "next_cursor": null, "has_more": false }
Notion API Changelog まとめ