LoginSignup
1
1

More than 5 years have passed since last update.

Twitter Streaming APIからAmazon SNSに転送

Posted at

背景

Qiitaで記事がツイートされると通知が来るのがちょっと嬉しいので、Poinでも同じようなことをしたくて調べています。

Twitter Streaming APIとは

Twitter Streaming APIを利用すると、ツイートをリアルタイムなストリームとして取得することができます。Twitterそのものですね。
もちろんすべてのツイートをモニターするのは現実的ではありませんが、filterという機能を使用することで特定条件に合致するツイートのストリームを取得できます。
Twitter Streaming API
statuses/filter

なぜAmazon SNS + SQSに転送するのか

Steaming APIは非常に魅力的なのですが、取得できるのは接続中のツイートのみで過去にさかのぼってツイートを取得することはできません。そのため、Steaming APIを使うプログラムはできる限りダウンタイムを短くする必要があります。

しかし、ツイートの使い方にはいろいろな可能性があります。プログラム修正時にはどうしてもダウンタイムが発生しますし、もしかしたら複数のプログラムからツイートを利用したくなるかもしれません。

このように入力側と出力側を疎結合させたい場合に、Amazon SNS + SQSは大きな力を発揮します。

入力側

Twitter Streaming API経由でストリームを受け取り、ひたすらAmazon SNSにポストします。僕はJava Servletとして実装し、Elastic Beanstalkにデプロイしました。負荷は低いのでt2.microで十分処理できます。

出力側

出力側では目的毎にSQSキューを作成し、上記のSNSトピックを購読します。あとはSQSキューをポーリングしながら処理を進めるだけです。ダウンタイムにもキューが溜まるだけなので、安心してコーディングを進める事ができます。

1
1
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
1
1