2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

myThingsAdvent Calendar 2016

Day 25

myThings DevelopersでWebhook未対応のTwitterAPIをWebhook風に扱ってみる

Posted at

はじめに

この記事では「Twitterで特定のハッシュタグのつぶやきが新たに投稿されたら自分のサーバにWebhookさせる」ということにチャレンジしてみようと思います。

TwitterのAPIはWebhookに対応していないので、通常は定期的にポーリングするような実装になるかと思いますが、
twitter1.png

今回はmyThings Developersのカスタムアクションという機能を使って、Webhook風に実現することができます。
twitter2.png

背景

今年9月、myThings Developersというサービスがリリースされました。
myThings Developersは非エンジニアの方でも色んなサービスのAPIをマッシュアップさせることができるmyThingsアプリを、より開発者向けにアレンジしたサービスです。
※詳しくは是非こちらをご覧ください。

そういった背景もあって、今年のアドベントカレンダーはmyThingsアプリについてだけではなく、myThings Developersについて書いて頂いた記事もありました(ありがとうございました!)。
ただちょっと気になったことが。。。

myThings Developersの大きな機能は2つしかありません。

  1. カスタムトリガー
  2. カスタムアクション

今QiitaにあるmyThings Developers関連の記事はカスタムトリガーの活用例が多く、カスタムアクションについて触れてる記事が少なかったので、カスタムアクションについての記事を書いてみようと思いました。

手順

ぶっちゃけこれを読んで頂いたほうが早いかもです。ただこの記事では防災情報の取得を行っているので、念のためTwitter向けの画面をお見せするとこんな感じです。
twitter3_5.png

twitter4.png

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のいいところですね。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?