✍️

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

2024/04/02に公開

まえがき

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

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

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

前提

  • GPTsが使える
  • ChatGPTに課金している

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

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

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

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に修正すると、動きました!

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あたりも触りたいね。

Discussion