外部画像やファイルへの URL をリンクするためのサポートを開始した。また、image、embed 、ファイルブロックなどの新しいブロックタイプのサポートを追加した。

以下の作業が API を通じて利用可能になった。

API を通じてファイルをアップロードすることはできないが、すでにアップロード済みのファイルは設定できる。何がサポートされているかは ここで確認できる。

ページアイコンとカバー画像

ページオブジェクトデータベースオブジェクト を取得すると、 cover や icon the response will now include 今は iconcover プロパティが含まれる。さらに、ページの作成ページの更新データベースの作成データベースの更新 などにおいて、アイコンやカバーイメージを扱うことができる。

せっかくなのでデータベースにアイコンを付けてみた。データベースなので、右のようなアイコンを URL で設定してみた。

#!/bin/sh
curl --location --request PATCH '<https://api.notion.com/v1/databases/c63c00ad-201d-4bed-82b0-18dfca9b6ba0>' \\
--header 'Authorization: Bearer '"$NOTION_API_KEY"'' \\
--header 'Content-Type: application/json' \\
--header 'Notion-Version: 2021-08-16' \\
--data '{
  "icon": {
    "type": "external",
    "external": {
      "url": "<https://img.icons8.com/ios/250/000000/database.png>"
    }
  }
}'

返却された JSON はこちら。icon プロパティに外部画像の URL が設定されている。カバーは設定していないので、null が入っている。データベースのページを見ると、ちゃんと上記のアイコンが設定されていることがわかる。

{
    "object": "database",
    "id": "c63c00ad-201d-4bed-82b0-18dfca9b6ba0",
    "cover": null,
    "icon": {
        "type": "external",
        "external": {
            "url": "<https://img.icons8.com/ios/250/000000/database.png>"
        }
    },
    "created_time": "2021-11-08T21:41:00.000Z",
    "last_edited_time": "2021-11-10T12:46:00.000Z",
    "title": [
        {
            "type": "text",
            "text": {
                "content": "Changelogs",
                "link": null
            },
            "annotations": {
                "bold": false,
                "italic": false,
                "strikethrough": false,
                "underline": false,
                "code": false,
                "color": "default"
            },
            "plain_text": "Changelogs",
            "href": null
        }
    ],
    "properties": {
        "開示?": {
            "id": "%3BfBx",
            "name": "開示?",
            "type": "checkbox",
            "checkbox": {}
        },
        "日付": {
            "id": "%3CWbe",
            "name": "日付",
            "type": "date",
            "date": {}
        },
        "原題": {
            "id": "%3FMR%7D",
            "name": "原題",
            "type": "rich_text",
            "rich_text": {}
        },
        "URL": {
            "id": "o%3A~F",
            "name": "URL",
            "type": "url",
            "url": {}
        },
        "タグ": {
            "id": "tUJV",
            "name": "タグ",
            "type": "multi_select",
            "multi_select": {
                "options": [
                    {
                        "id": "fcb7bc23-a43d-4ff1-967f-db59a6125492",
                        "name": "ADDED",
                        "color": "green"
                    },
                    {
                        "id": "05f3b6b1-b6f1-49a2-bbdb-955cfb4d36f4",
                        "name": "IMPROVED",
                        "color": "gray"
                    }
                ]
            }
        },
        "経過日数": {
            "id": "~Xof",
            "name": "経過日数",
            "type": "formula",
            "formula": {
                "expression": "dateBetween(now(), prop(\\"日付\\"), \\"days\\")"
            }
        },
        "名前": {
            "id": "title",
            "name": "名前",
            "type": "title",
            "title": {}
        }
    },
    "parent": {
        "type": "page_id",
        "page_id": "6a8efd66-5f69-4b39-96c3-089f680003e0"
    },
    "url": "<https://www.notion.so/c63c00ad201d4bed82b018dfca9b6ba0>"
}

新しいブロックタイプ

埋め込みオブジェクト、画像、ビデオ、ファイル、PDF、ブックマークブロックが取得・作成できるようになった。→ 子ブロック要素を追加子ブロック要素を取得

ここでは特に使っていないので、使用例は省略

その他にもサードパーティのウェブアプリケーション(Typeform, Figma など) も追加できるとのこと。こちらも使用例は省略。


Notion API Changelog まとめ