🐺

Notion API エンドポイント全て使ってみる「Blocks」編

2023/09/26に公開

はじめに

ここ最近 Notion API を利用した開発を行っており、備忘録も兼ねてBlock周りのエンドポイントについて
基本的な使い方をまとめてみました。

対象

  • Notion API を普段から利用している方
  • Notion API の詳細が気になるけど調べるのが面倒な方
  • Notion API でどんな機能があるのか気になる方

概要

Notion API では様々なエンドポイントが用意されています。

その中でも今回は「Blocks」に関する機能にフォーカスを当てまとめていきます。

※APIの実行はPostman経由で行います。

Notion API とは

Notion API は、Notion プラットフォームでのデータの読み取り、作成、更新、削除を行うための公式のプログラムインターフェースです。
Notion のデータを外部アプリケーションやスクリプトと連携させることが可能になります。

詳細情報については、公式の Notion API ドキュメントを参照してください。
https://developers.notion.com/reference/patch-block-children

Blocksで用意されているエンドポイント

Blocksは、Notion上のテキスト、画像、リスト、コードブロックなどといった小さい単位を扱うことができるエンドポイントをいくつか用意してくれています。

以降はそれぞれのエンドポイントに関する概要と
Notion上の画面を合わせながらまとめていきます。

Append block children

このエンドポイントを使用すると、指定された親ブロックの子ブロックとして新しいブロックを追加することができます。テキスト、画像、リスト、コードブロックなど、さまざまなタイプのブロックを作成できます。

リクエスト例

更新前の Page Block
Before Page Add Block

POST /v1/blocks/{parent_block_id}/children
Content-Type: application/json

{
    "children": [
        {
            "paragraph": {
                "rich_text": [
                    {
                        "text": {
                            "content": "Blocksの動作確認"
                        }
                    }
                ]
            }
        }
    ]
}

更新後の Page Block
After Add Block

Retrieve a block

このエンドポイントを使用すると、指定されたブロックの詳細情報を取得できます。ブロックのタイプ、コンテンツ、親ブロックなどの情報が含まれます。

リクエスト例

GET /v1/blocks/{block_id}

Retrieve block children

このエンドポイントを使用すると、指定された親ブロックの子ブロックの一覧を取得できます。子ブロックのタイプやコンテンツなどの情報が含まれます。

リクエスト例

GET /v1/blocks/{parent_block_id}/children

Update a block

このエンドポイントを使用すると、指定されたブロックの内容を更新することができます。テキストブロックの内容を変更したり、リンクを追加したりすることができます。

リクエスト例

更新前の Page Block
Before Block Update

PATCH /v1/blocks/{block_id}
Content-Type: application/json

{
    "paragraph": {
        "rich_text": [
            {
                "text": {
                    "content": "更新されたBlock"
                },
                "annotations": {
                    "color": "green"
                }
            }
        ]
    }
}

更新後の Page Block
After Update Block

Delete a block

このエンドポイントを使用すると、指定されたブロックを削除することができます。削除したいブロックのIDを指定するだけで、ブロックを削除することができます。

リクエスト例

DELETE /v1/blocks/{block_id}

さいごに

今回はBlocksのエンドポイントについてまとめていきました。

Notion上のコンテンツを柔軟に管理することができ
Blocks エンドポイントは非常に便利な機能です。

Slackや普段利用するサービスと連携することで
特に効果を発揮しそうな気がしますね。

他プロパティに関する追加や更新に関する仕様についても
詳しくみていければと思います。

Discussion