Twitterでいいねやリプの通知を受けっとて何かするためにはWebhookを使う。
やること
開発者アクセスに申し込む
「アカウントアクティビティAPIの概要 | Docs | Twitter Developer Platform」 から開発者用のアカウントを作成して、トークンを発行する。
- 電話番号を登録する必要がある
- メールで確認コードが送られてくる
- keyは再び表示することはできないので安全な場所に保存する
開発者アカウントを発行してkeyを保存したら、Developer Dashboard画面に遷移する。
アプリの作成
開発者アカウントを作成したら、プロジェクトからアプリを作成する。この時アプリについての説明が必要になる。
Access LevelをEssentialからElevatedにする。
参考: Account Activity APIを使えるようにする – Qiita
サーバーを用意する
webhookを受け取るサーバーを用意する。今回はVPSを使用する。自分のドメイン名が必要。
アプリの開発
サーバーで実際に動かすアプリケーションを開発する。
Challenge Response Check (CRC)
twitterから送られてくるチャレンジに通過する。
指定したURLにcrc_tokenが送られてくる。適切に変換して、response_tokenを返す。
チャレンジは登録した時から24時間ごとくらいにくる。
こちらのサイトを参考にする。Securing webhooks | Docs | Twitter Developer Platform
postメソッドでもメッセージを受け取る
CRCのチャレンジはgetメソッドで、実際にwebhookで使われるのはpostメソッド。
postメソッドでイベントを受け取れるようにする。
参考: Account Activity data objects | Docs | Twitter Developer Platform
Webhookの登録
※難しかった。Twitter公式を見てそのままcURLをポストしてもうまくいかなかった。
keyを全て登録して、Using the command line example scripts を実行すると登録できる。
ユーザーの登録
イベントを受け取るユーザーを登録する。開発者ではなくても、認証がうまくできれば登録できる(やったことないけどおそらくできる)。
Using the command line example scripts の2.Add a user subscription for the user that owns the app.で登録できる。
ここまでできれば用意したサーバーにイベントが飛んでくる。
登録を削除する
webhookを使用しなくなったとき。
node example_scripts/webhook_management/delete-webhook-config.js -e <environment>
参考: node example_scripts/webhook_management/delete-webhook-config.js -e <environment>
参考サイト
- アカウントアクティビティAPIの概要 | Docs | Twitter Developer Platform
- Getting started with webhooks | Docs | Twitter Developer Platform
- Securing webhooks | Docs | Twitter Developer Platform
- Account Activity APIを使えるようにする – Qiita
- twitterdev/account-activity-dashboard: Sample web app and helper scripts to get started with the premium Account Activity API
終わりに
Webhookで通知がサーバーに来るのは面白い。
Webhookの登録が一番大変だった。公式のやり方とか他のサイトの解説ではうまくできなかった。
Webhookのイベントの意味がよくわからないのもあるが、使いたいイベントだけ取れれば十分。
Comments