nikkie-ftnextの日記

イベントレポートや読書メモを発信

PythonでNotionにpageを作る(環境設定 & Hello World)

はじめに

ハミングバード1 nikkieです。

Notionで、あるpageの下に子のpageを作る自動化を試しました。

目次

あるpageの下に子のpageを作る

今回の自動化のユースケースは、Notion外にある内容をインポートしたいというものです。
GPT-4にPythonでやる方法を聞いたら、ライブラリnotion-clientとサンプルコードを教えてくれたので、それを元に手を動かしました(ありがとう!)。

  1. Notionでインテグレーションを設定
  2. notion-clientを使ったPythonスクリプトを実装

インテグレーション

インテグレーションの作成

https://developers.notion.com/docs/create-a-notion-integration#getting-started

https://www.notion.com/my-integrations から作ります。
名前を決めるだけで、他はデフォルトでOKでした(nikkie-practice)。
プログラムに指定するシークレットを控えておきます。

親pageをインテグレーションに共有する

pageにintegrationをコネクトします。

これをしないと親pageが読み取れず、404エラーが返ってきます。

親ページはURL中のIDを控えておきます。

notion-client

今回の動作環境

  • Python 3.11.8
  • notion-client 2.2.1

環境変数NOTION_TOKENにintegrationのシークレットを設定します。

notion-clientを使った実装

「Create a page」のエンドポイントにPOSTリクエストを送ります。
https://developers.notion.com/reference/post-page

クライアントに指定している辞書の詳細は以下を見ると読み解けそうでした。
https://developers.notion.com/docs/working-with-page-content

終わりに

PythonプログラムでNotionにpageを作る設定・実装を見てきました。
Hello Worldはできたぞ!

私がつまづいたのはpageをintegrationに共有する「コネクト」でした。


  1. 桜守歌織さん、お誕生日おめでとうございバース