以下の説明があった。私のアプリも 2021-08-16 版にアップデートする予定。

<aside> 💡 9月28日現在、新しい API とブロックタイプは古いバージョンではサポートされない

まだ 2021-05-112021-05-13 のユーザは、バージョンを 2021-08-16 に変更し、 9月28日以降に導入されたブロックタイプや API を使用すること。

9月28日以前に導入された API 機能は、古い API で引き続き利用できる。

</aside>

今回、コードブロック、インラインデータベース、データベースページブロックの取得・追加・更新ができるようになった。

コードブロック

子ブロックの追加子ブロックの取得 にてコードブロックが取得できるようになった。試しに、コードブロックの取得をしてみる。サンプルとして、スクリプト自身のコードブロックを取得してみる。ただし、この例では子ブロックではなく、直接ブロックを取得している。

#!/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"
    }
}

インラインデータベースとデータベースページブロック

子ブロックの取得ブロックの取得 にてインラインデータベースを取得できるようになった。

<aside> 💡 子データベースブロックをアップデートしたいときには、データベースのアップデートを使用する。データベースのタイトルを変更した場合、子データベースブロックの名前も自動的に変更される。

</aside>

検証として 子ブロックの取得 を使い、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 まとめ