LoginSignup
1

More than 5 years have passed since last update.

Twitterのストリームを扱う gem を userstream から twitter へ移行

Last updated at Posted at 2017-04-09

Twitter を操作する gem に userstream というものがあり、かつて twitter gem がまだストリームをサポートしていなかった頃にこの userstream を使っていました。

twitter gem がストリームに対応してからというもの、最近はめっきり twitter gem を使っていますが、まだ userstream を使用したプロジェクトが手元に残っていたので、移行手順をここにメモしておこうと、そういう魂胆です。

Gemfile

Gemfile は

Gemfile
gem 'userstream', :git => 'git://github.com/mitukiii/userstream.git'

Gemfile
gem 'twitter'

と変更します。

初期化

UserStreamの初期化は、

UserStream.configure do |config|
  config.consumer_key = ENV['TWITTER_CONSUMER_KEY']
  config.consumer_secret = ENV['TWITTER_CONSUMER_SECRET']
  config.oauth_token = ENV['TWITTER_OAUTH_TOKEN']
  config.oauth_token_secret = ENV['TWITTER_OAUTH_TOKEN_SECRET']
end

@stream_client = Twitter::Streaming::Client.new do |config|
  config.consumer_key        = ENV['TWITTER_CONSUMER_KEY']
  config.consumer_secret     = ENV['TWITTER_CONSUMER_SECRET']
  config.access_token        = ENV['TWITTER_OAUTH_TOKEN']
  config.access_token_secret = ENV['TWITTER_OAUTH_TOKEN_SECRET']
end

などと変更します。

ストリーム受信

あとは

UserStream.client.user do |status|
  nirunari_yakunari status
end

としていたところを

@stream_client.user do |status|
  nirunari_yakunari status
end

とすればよいです。

エラー処理の UserStream::RateLimitedTwitter::RateLimited とすればよいです。

詳しくは gem のドキュメントを読みます。Class: Twitter::Streaming::Client — Documentation for twitter

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