NotionのAPIを一緒に組んでくれるGPTsを作った | Sotono.dev

Sotono.dev


NotionのAPIを一緒に組んでくれるGPTsを作った

まえがき

Notion の API を使用する際に、大体ページを追加したりすることが多いと思うんですが、書いてて思いました。

プロパティを Json で指定するのヒジョ~~~~~~~~にめんどくさくね??????

というのも、ページを追加するときにプロパティを適宜指定して~ってことをすると思うんですが、それを Json 形式でまとめないといけないのがネックになっていました。 というわけで、面倒なことは AI にやらせよう!!!!!!! ってことでやっていきます。

前提

ChatGPT は NotionAPI を理解しているのか?

まず大前提としてこれが危うい気がするので試してみます。

目標としては、こんな感じのデータベースに、プロパティを含めてちゃんと書き込まれるのかを試します。

File Image

You

データベースIDを与えるので、そのデータベースに日付プロパティ(ひづけ)とタイトルプロパティ(なまえ)とセレクトプロパティ(どこ)を書き込むAPIをCurlコマンドで渡してもらってよいですか?各々のプロパティは適当な値を入れてください。

ChatGPT

了解しました。データベースID、日付プロパティ(ひづけ)、タイトルプロパティ(なまえ)、セレクトプロパティ(どこ)に適当な値を書き込むためのCurlコマンドを以下に示します。この例では、以下のような値を設定しています:

ひづけ(日付プロパティ): "2024-04-02"
なまえ(タイトルプロパティ): "サンプルタイトル"
どこ(セレクトプロパティ): "東京"
Notion APIを利用する際には、AuthorizationヘッダーにあなたのNotion統合の秘密鍵(Bearerトークン)を設定する必要があります。また、データベースIDを適切な値に置き換えてください。

<省略>

YOUR_INTEGRATION_TOKENは、Notion APIのアクセスキーに置き換えてください。
YOUR_DATABASE_IDは、データを書き込みたいNotionデータベースのIDに置き換えてください。
このコマンドを実行する前に、必要な認証情報(トークンとデータベースID)を正しく設定してください。また、Notion APIのバージョンが変更されている可能性があるため、最新の情報についてはNotionの公式ドキュメントを確認することをお勧めします。

与えられたコマンド

curl -X POST '<https://api.notion.com/v1/pages>' \\
  -H 'Authorization: Bearer YOUR_INTEGRATION_TOKEN' \\
  -H 'Content-Type: application/json' \\
  -H 'Notion-Version: 2023-05-11' \\
  --data '{
    "parent": { "database_id": "YOUR_DATABASE_ID" },
    "properties": {
      "ひづけ": {
        "date": {
          "start": "2024-04-02"
        }
      },
      "なまえ": {
        "title": [
          {
            "text": {
              "content": "サンプルタイトル"
            }
          }
        ]
      },
      "どこ": {
        "select": {
          "name": "東京"
        }
      }
    }
  }'

結果

{
  "object": "error",
  "status": 400,
  "code": "missing_version",
  "message": "Notion-Version header failed validation: Notion-Version header should be \\"2021-05-11\\", \\"2021-05-13\\", \\"2021-08-16\\", \\"2022-02-22\\", or \\"2022-06-28\\", instead was \\"2023-05-11\\".",
  "request_id": "32a73ee4-5f26-4634-9c05-d094372e0308"
}

与えた Notion バージョン 2023-05-11 が違うのでこれを 2022-06-28 に修正すると、動きました!

File Image

GPTs 用にプロンプトを書いてく

私は日本語を理解するのであなたは日本語で話してください。

あなたはNotionAPIを使ったデータベースの書き込みに関してJsonを生成するプロフェッショナルです。
私は、あなたにデータベースの構造を教えるので、それでデータベースにページを追加するJsonを書いてください。

手順として以下を想定します。
1.
私は、あなたにデータベースの構造(プロパティ)を説明します。

2.
あなたは与えられた構造をもとに、サンプルデータを適当に入れ込み、
curlコマンドで実行できるコードを記述し、
「このコマンドを叩いて実行してテストしてください」と説明します。
このとき、ヘッダーに`Notion-Version`がありますが、これは`2022-06-28`で固定してください。
また、データベースIDとインテグレーショントークンの取得方法も案内できたらしてください。

3.
テストの結果を聞き、失敗した場合は適宜Jsonデータを修正してください。
テストが成功した場合、Jsonをコードブロックで与えてください。

1~3をすると、あなたの仕事は完了です。

GPTs を設定する

とりあえず適当に GPTs を設定していきます。

できあがり

ChatGPT - Notion API Assistant for JSON

おわりに

Notion API で一番触る部分を効率化できたと思うのでとても良い開発体験だったと思います。 今度は Claude あたりも触りたいね。