TwitterのStreamingAPIを使ってみた – 3(ruby twitter gem – Ver5編)

3b19eb0c-s

以前、TwitterのStreamingAPIをrubyのgemで取得するエントリーを書いたのですが、最近新しいサーバで同様にtwitter gemを使おうとしてインストールして実行したら全然動かなく。。
なんでーー!? と思っていたら twitter gemが大幅にバージョンアップしており、新バージョンがインストールされていたのでした。しかもいままでのバージョンのメソッドとかはほとんど使えなくなっているようです。

ちなみに、2013/12/21現在は5.3.0が最新のようです。

$ gem list | grep twitter
twitter (5.3.0, 5.2.0)

というわけで、簡単に新しい方のgemを使ってみました。

※4系が入ってる人は古いこちらの記事を参考にしてください。

新しいバージョンでの初期化とStreaming取得

とりあえずソースはこれ

require "twitter"

client = Twitter::Streaming::Client.new do |config|
  config.consumer_key        = "XXXXXXXXXXXXXXX"
  config.consumer_secret     = "XXXXXXXXXXXXXXX"
  config.access_token        = "XXXXXXXXXXXXXXX"
  config.access_token_secret = "XXXXXXXXXXXXXXX"
end

client.sample do |obj|
  puts obj.text if obj.is_a?(Twitter::Tweet) #tweet本文が流れます
end

いままではTweetStreamクラスが用意されており、 configureメソッドで初期化してましたが今回からはTwitter::Streamingになったようです。

その他、より詳細なドキュメント等はこちらを参照のようです。
ついでにドキュメントの概要で案内されていた他のメソッドもメモしておきます。

フィルター(検索)

この場合は、or検索ができるそうです。

topics = ["coffee", "tea"]
client.filter(:track => topics.join(",")) do |object|
  puts object.text if object.is_a?(Twitter::Tweet)
end

自分のタイムラインやDMを流し込むには

client.user do |object|
  case object
  when Twitter::Tweet
    puts "It's a tweet!"
  when Twitter::DirectMessage
    puts "It's a direct message!"
  when Twitter::Streaming::StallWarning
    warn "Falling behind!"
  end
end

なお、ドキュメントを見るにobjectの中身は以下のバリエーションもあるそうです。
Twitter::DirectMessage
Twitter::Streaming::DeletedTweet
Twitter::Streaming::Event
Twitter::Streaming::FriendList
Twitter::Streaming::StallWarning
Twitter::Tweet

まとめ

ちょっとまだ詳しく使って見れていないのですが、おいおい試したメソッドとかを追加していきたいです。
今日はつけ麺を食べて帰ります。 寒い!! おわり。

(*‘ω‘ *)

2013-12-21 | Posted in twitter APINo Comments » 


関連記事

Comment





Comment



*