MENU

Notion APIで特定のページIDを使ってデータを取得する

Notion APIを使ってデータベース内の特定のアイテムにアクセスする際、データベース全体をクエリするのではなく、あらかじめページIDがわかっている場合には、そのIDを使用して直接アイテムを取得する方法が便利です。ページIDを指定して直接アクセスすることで、効率的かつ高速に目的のデータにアクセスできます。

本記事では、特定のページIDがわかっている場合に、Notion APIのエンドポイントretrieve a pageを使用してページデータを取得する方法について解説します。


1. ページIDとは?

Notionでは、すべてのページ(アイテム)にユニークなページIDが自動的に割り当てられます。このIDは、ページがデータベースに属しているかどうかにかかわらずユニークで、ページごとに一意です。たとえば、あるデータベース内の特定のアイテム(ページ)に対して、既知のページIDを使ってアクセスする場合に、このページIDを直接指定してデータを取得できます。

2. Notion APIのページ取得エンドポイント

ページIDを使ってページを直接取得するには、以下のエンドポイントを利用します。

https://api.notion.com/v1/pages/{page_id}

ここで、{page_id}は実際のページIDに置き換えます。このエンドポイントにGETリクエストを送信することで、指定されたページIDに対応するデータを取得できます。

3. コードスニペット

以下のPythonコードスニペットでは、ページIDを指定して特定のページデータを取得しています。

import requests

def get_page_by_id(page_id):
    """
    Notion APIを使用して特定のページIDでページデータを取得する関数。

    Parameters:
        page_id (str): NotionのページID(例: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")

    Returns:
        dict: 取得したページデータ
    """
    url = f"https://api.notion.com/v1/pages/{page_id}"

    # 必要なヘッダーを設定
    headers = {
        "Authorization": "Bearer YOUR_INTEGRATION_TOKEN",
        "Notion-Version": "2022-06-28"
    }

    response = requests.get(url, headers=headers)

    # 正常なレスポンスの場合はデータを返す
    if response.status_code == 200:
        page_data = response.json()
        return page_data
    else:
        # エラー処理
        print(f"Error retrieving page: {response.status_code}, {response.text}")
        return None

# 使用例
page_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"  # 取得したいページのID
page_data = get_page_by_id(page_id)

if page_data:
    print("Page data:", page_data)

4. コードの詳細

  • URLの組み立て
    https://api.notion.com/v1/pages/{page_id} の形式で、ページIDをURLに組み込むことで、Notionのページ取得エンドポイントにアクセスします。
  • ヘッダーの設定
    Notion APIにアクセスするには、以下の2つのヘッダーが必要です。
  • "Authorization": "Bearer YOUR_INTEGRATION_TOKEN"
    • Notionの統合トークンを指定します。YOUR_INTEGRATION_TOKENには実際のトークンを設定します。
  • "Notion-Version": "2022-06-28"
    • APIのバージョンを指定します。最新のAPIバージョンに合わせて指定してください。
  • レスポンスの処理
    requests.getを使ってAPIにリクエストを送り、レスポンスが200(正常)であればデータを取得し、エラーが発生した場合はエラーメッセージを出力します。

5. 実行例

関数を呼び出す際に、取得したいページのID(例えば "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")をpage_idとして渡します。これにより、そのIDに対応するページのデータが取得できます。

page_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
page_data = get_page_by_id(page_id)

まとめ

Notion APIを使って、ページIDが既知のデータを直接取得する方法を紹介しました。ページIDでアイテムにアクセスする方法は、特定のデータだけに効率的にアクセスしたいときに役立ちます。

目次