Notion APIが公開されましたね。早速触ってみようと思います。
今回はNotion APIを使って、Notionのデータベースに項目が追加されたらGmailでメール通知することをやってみました。
また、最近Notionでマインドマップが描けるようになりました。ますますNotionが楽しくなってきています。
Notion APIとは
そもそもAPIってなんだ?って思う方もいらっしゃるかと。
APIとは
APIとは、アプリケーションプログラミングインタフェース(Application Programming Interface)で、ソフトウェアが互いにやりとりするときに使用するインタフェースの仕様です。
例えば、飲食店のメニューを例に挙げると...
飲食店には食べ物、飲み物のメニューがあって、種類や値段が記されている『メニュー』がありますよね。
APIとはこの『メニュー』にあたるもので、この飲食店にはどのような種類があって、値段はいくらか(APIでいう仕様)をお客さんにわかるようにしています。
なので、メニューがあることで来店した人はその仕様にしたがって注文できるようになります。
Notion APIでできること
Notion APIを使うことによって、次のことができるようになります。
- 特定のデータベースの情報を取得する
- 新しいページを作成する
- ページプロパティを設定する
- 特定のリクエストに基づいてページプロパティを取得する
- ページに新しいブロックを作成する
- ページからすべてのブロックを取得する
- すべてのワークスペースユーザーのリストを取得する
- SCIMを利用して、プログラムでメンバーを作成する
- ワークスペースからメンバーを削除する
たとえば、Jiraで特定のチケットが作成されたらNotionに専用のページを作成する、Notionのデータベースを更新したらGoogle Sheetsに変更を反映する、なんてことができるようになります。
やりたいこと
さて、やりたいことですが、今Notionを家族で使っていて、そこで出ている課題を解決していきたいです。
今一番やりたいことは、データベースの変更通知です。
家族で買い物リストとか、やることリストを共有しているのですが、「〇〇買ったよー」の通知を受け取りたいなあと思うわけです。『買い物リストが更新されたら通知する』ってことができたらいいなあと日頃から思っていました。
Notion APIによって、それが実現できるのではないかと思って、試行錯誤してみました!
次章から実際に手を動かしていきます。
Notion APIでデータベース変更をGmailに通知する
Zapierを使うと楽に作ることができそうです。
まず、Notion のほうでIntegraionを作成して、対象のデータベースにアクセスするためのトークンを作成します。その後、Zapierからトークンを指定してデータベースを参照できるようにします。
Notion APIのトークンを作成する
下のリンクから『+ New integration』をクリックして、Integrationを作成します。
https://www.notion.so/my-integrations
入力項目が表示されるので、それぞれ任意に設定します。
- Name
- Notify shopping list update
- Logo
- まずは未設定
- Associated workspace
- 管理ユーザのワークスペース
Integration が作成されると、「Internal Integration Token」というものが取得できます。
この値を使って、 API リクエストをしていくことになります。認証コードみたいなものですね。後で使うのでコピーしておきましょう。
ZapierにIntegrationを追加する
下のリンクにアクセスします。
https://zapier.com/apps/notion/integrations
こんな画面が表示されるので、Integrationsの+ボタンをクリックします。
トリガーやアクションを細かく設定できるようです。まずはデフォルトのまま下に進んで、「Connect Notion + Gmail」ボタンをクリックします。
次に、Notionの認証をします。ここでNotion APIのトークンとトリガーの対象とするデータベースを設定します。画像のようなクラッカーが出てきたら認証成功です。
次に、Gmailの設定をします。
ここでは、送信先やメールタイトル、メール本文を設定します。
すべての設定が完了すると、下のような画像が出てきて設定完了になります。
ためしに、データベースに項目追加してみました。そして、しばらくするとメールが飛んでくることが確認できました!
HTML形式で本文を作成できて、データベースのプロパティも表示させることができました!
さいごに
まずは、Gmailに通知させることができました!
あとは、項目変更とかトリガーに設定できるか、Lineに通知させたりできるか、を調べてみようと思います。