これまで、PerlでStreamingデータを収集していたのですが、API1.1になったのを機会にRubyに移行しました。以下、動作までの覚え書きです。
投稿や検索は、gem で Twitterライブラリをインストールすれば、簡単に使えます。
ところが、このライブラリでは StreamingAPIには対応していないようです。
To access the Twitter Streaming API, we recommend TweetStream.
とのことだったので、TweetStreamを見てみました
ところがこちらにも
Note: TweetStream does not currently work with Ruby 2.0, this is a known issue.
という記載があります。
そこで、さらに内部で使用しているらしいEM-Twitterを使ってみました
ところが、これは実行時にライブラリが足りないらしく、なにやらDevelopperKitうんぬんとメッセージが表示されます。gemだけで使いたいので、これも不採用としました。
上記の調査から既存ライブラリの使用は断念し、TwitterStreamingAPI を直接http接続から使用する方法をとることにしました。
探してみると、以下のようなものがありました。3つのプログラムコードはほとんど同じです。
上記のページを参考にしながら、次のような変更を施しました。
1.CONSUMER_KEY、ACCESS_TOKENなど
自分で用意したものに変更しました。
2.request["User-Agent"]
自分の都合に合わせて変更しました
3.接続先
「
GET statuses/sample」
を使いたかったので、接続先を
https://stream.twitter.com/1.1/statuses/sample.json
に変更しました
4.サーバ証明書
これは、本来は必要なんでしょうが、実験で使用するプログラムであることから、証明書なしで動作させるために
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
としました
(将来的な動作を保証するものではありません)
※必要なライブラリは、適宜gemからインストールしました
以上で、基本動作の確認が出来ました。あとは、それぞれの都合に合わせて修正して使います。
※2013/07/04時点の調査です。