Twitterの Webhook APIを使ってみる

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をポストしてもうまくいかなかった。

こちらを参考にする。twitterdev/account-activity-dashboard: Sample web app and helper scripts to get started with the premium Account Activity API

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>

参考サイト

終わりに

Webhookで通知がサーバーに来るのは面白い。

Webhookの登録が一番大変だった。公式のやり方とか他のサイトの解説ではうまくできなかった。

Webhookのイベントの意味がよくわからないのもあるが、使いたいイベントだけ取れれば十分。

関連記事

Comments

タイトルとURLをコピーしました