以下は古い API バージョンでは利用できない新しい機能の紹介 にも書かれていた注意書き。Synced block にしてみた。今回、Callout の取得なので、オリジナルの Callout を取得してみることにする。

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

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

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

</aside>


今回、引用と Callout ブロックの取得・作成・更新ができるようになった。 子ブロックの追加子ブロックの取得を使うことで、引用とコールアウトを取得・追加できる。

引用の取得

とりあえずここに引用を作成して取得してみる。

引用のサンプル

今回も子ブロックではなく、直接引用を取得する。

#!/bin/sh
curl '<https://api.notion.com/v1/blocks/1b2c6d9f070c48cabc7abf39ab7b8038>' \\
  -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \\
  -H 'Notion-Version: 2021-08-16'

取得した JSON はこちら。取得方法がわかれば、更新はこの JSON をまねて送ればいいだけ。

{
    "object": "block",
    "id": "1b2c6d9f-070c-48ca-bc7a-bf39ab7b8038",
    "created_time": "2021-11-11T00:52:00.000Z",
    "last_edited_time": "2021-11-11T00:52:00.000Z",
    "has_children": false,
    "archived": false,
    "type": "quote",
    "quote": {
        "text": [
            {
                "type": "text",
                "text": {
                    "content": "引用のサンプル",
                    "link": null
                },
                "annotations": {
                    "bold": false,
                    "italic": false,
                    "strikethrough": false,
                    "underline": false,
                    "code": false,
                    "color": "default"
                },
                "plain_text": "引用のサンプル",
                "href": null
            }
        ]
    }
}

コールアウトの取得

引用と同様にコールアウトに対しても 子ブロックの追加子ブロックの取得を使うことができる。同じようにコールアウトを直接取得してみた。

#!/bin/sh
curl '<https://api.notion.com/v1/blocks/28e2c8d9d38b408bb03b0ee5aa418b85>' \\
  -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \\
  -H 'Notion-Version: 2021-08-16'

取得した JSON はこちら。Callout として認識されたのは最初の一行目だけだった。二行目以降ってどうやって取得するのだろうか。まぁ使わないからいいか。

{
    "object": "block",
    "id": "28e2c8d9-d38b-408b-b03b-0ee5aa418b85",
    "created_time": "2021-11-10T23:29:00.000Z",
    "last_edited_time": "2021-11-11T00:45:00.000Z",
    "has_children": true,
    "archived": false,
    "type": "callout",
    "callout": {
        "text": [
            {
                "type": "text",
                "text": {
                    "content": "9月28日現在、新しい API とブロックタイプは古いバージョンではサポートされない",
                    "link": null
                },
                "annotations": {
                    "bold": false,
                    "italic": false,
                    "strikethrough": false,
                    "underline": false,
                    "code": false,
                    "color": "default"
                },
                "plain_text": "9月28日現在、新しい API とブロックタイプは古いバージョンではサポートされない",
                "href": null
            }
        ],
        "icon": {
            "type": "emoji",
            "emoji": "💡"
        }
    }
}

Notion API Changelog まとめ