🤖
TodoistからWebhookを受け取る
Todoistでタスクを完了した際にWebhookを受け取る仕組みを実装する機会があったのですが、ドキュメントの読み込みが甘く動作確認に手間取ってしまいました。
本記事では、TodoistのWebhookを有効化する上で重要なポイントと筆者がハマった落とし穴について備忘録として残します。
基本設定
TodoistのWebhookを利用するには、以下の手順で設定を行います。
1. Todoistアプリの登録
まず、Todoist App Management Consoleでアプリを登録します。登録すると以下の情報が発行されます。
- Client ID: アプリを識別するための一意のID
- Client Secret: Webhookの検証に使用する秘密鍵
2. Webhookエンドポイントの準備
Todoistからのイベントを受け取るためのエンドポイントを用意します。このエンドポイントは以下の要件を満たす必要があります。
- HTTPS対応(本番環境では必須)
- POSTリクエストを受け付ける
- 適切なステータスコード(200番台)を返す
3. Webhookエンドポイントの登録
登録したアプリのWebhookの欄に下記の設定を追加します。
- 2で準備したエンドポイント
- 発火させるイベントタイプ(例:
item:completed)
最後に「Webhookを有効化」を押下し「設定を保存」を押下すれば登録完了です。
ハマり所
公式ドキュメントを良く見ればわかるのですが、OAuthを通さないとWebhookが送信されるようになりません。
私はAPIトークンやテストトークンを使ってOAuthをスキップしていたのでハマりました。
ドキュメントに下記のような記載がありました。
1. Performing the authorization request in the browser and capturing the code via the browser's developer tools.
2. Performing the token exchange request through a tool like Postman and reading the access_token from the response. Note that you can't make this request via the browser as it needs to be a POST request.
ドキュメントに書かれた下記のステップを実施することでWebhookが送信されるようになりました。
まとめ
TodoistのWebhookを利用する際のポイントをまとめます。
- Webhookの設定自体は App Management Console から簡単に行える
- 重要: APIトークンやテストトークンではなく、OAuth認証を通す必要がある
- OAuth認証を完了しないとWebhookが送信されないので注意
気づいてしまえばすぐなのですが、AIエージェントと一緒に開発していると公式ドキュメントをしっかり読む機会が減ってしまいがちです。
定期的にこういう事象に遭遇して、公式ドキュメントの重要性を再認識していきたいですね。
Discussion