🤖

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が送信されるようになりました。

  1. Authorization request
  2. Redirection to your application site
  3. Token exchange

まとめ

TodoistのWebhookを利用する際のポイントをまとめます。

  • Webhookの設定自体は App Management Console から簡単に行える
  • 重要: APIトークンやテストトークンではなく、OAuth認証を通す必要がある
  • OAuth認証を完了しないとWebhookが送信されないので注意

気づいてしまえばすぐなのですが、AIエージェントと一緒に開発していると公式ドキュメントをしっかり読む機会が減ってしまいがちです。
定期的にこういう事象に遭遇して、公式ドキュメントの重要性を再認識していきたいですね。

参考

GitHubで編集を提案

Discussion