はじめに
この記事では「Twitterで特定のハッシュタグのつぶやきが新たに投稿されたら自分のサーバにWebhookさせる」ということにチャレンジしてみようと思います。
TwitterのAPIはWebhookに対応していないので、通常は定期的にポーリングするような実装になるかと思いますが、
今回はmyThings Developersのカスタムアクションという機能を使って、Webhook風に実現することができます。
背景
今年9月、myThings Developersというサービスがリリースされました。
myThings Developersは非エンジニアの方でも色んなサービスのAPIをマッシュアップさせることができるmyThingsアプリを、より開発者向けにアレンジしたサービスです。
※詳しくは是非こちらをご覧ください。
そういった背景もあって、今年のアドベントカレンダーはmyThingsアプリについてだけではなく、myThings Developersについて書いて頂いた記事もありました(ありがとうございました!)。
ただちょっと気になったことが。。。
myThings Developersの大きな機能は2つしかありません。
- カスタムトリガー
- カスタムアクション
今QiitaにあるmyThings Developers関連の記事はカスタムトリガーの活用例が多く、カスタムアクションについて触れてる記事が少なかったので、カスタムアクションについての記事を書いてみようと思いました。
手順
ぶっちゃけこれを読んで頂いたほうが早いかもです。ただこの記事では防災情報の取得を行っているので、念のためTwitter向けの画面をお見せするとこんな感じです。
myThings Developersの設定は以上です。
ただしTwitterのアクセストークンをmyThings Developersに預ける処理をBaaS上に実装する必要があります。そちらは公式チュートリアルに参照して頂ければと思います。
注意点としては、全てのAPIに対応している訳ではなく、myThings DevelopersはそのAPIのよく使われるケースでラッピングしているので、細かい制御が必要になる場合は直接APIを使わないと実現できないこともあります。
また、Webhookといっても、自分でポーリングしなければならないところを、myThings Developersが代わりにポーリングしてくれるというものなので、リアルタイム性という意味ではmyThings Developersのポーリング間隔に依存することになります。
myThings Developersでは一部の特別なサービス以外は15分間隔でポーリングを行っているので、リアルタイム性を確保しなければならない場合は、やはり直接APIを使わないと実現できないこともあります。
とはいえ、TwitterのアイコンをFacebookやInstagramに置き換えるだけで、それらもWebhook風に扱える手軽さは一つの武器だと思います。そのようにAPI個々のルールを勉強しなくて良いのはmyThings Developersのいいところですね。