Ruby2.0,Rails4で確認
tweetstream gemを使用してTwitterStreamingAPIでデータ取得を試してみました。
今回は
目標:ハッシュタグがyoutubeとなっているtweetを取得してlogに表示する
という所までやってみたいと思います。
初期設定
- Gemfileにtweetstreamを追加。
gem 'tweetstream'
- initializerにtweetstream設定を追加
config/initializers/tweetstream.rb
TweetStream.configure do |config|
config.consumer_key = 'YOUR KEY'
config.consumer_secret = 'YOUR SECRET'
config.oauth_token = 'YOUR ACCESS TOKEN'
config.oauth_token_secret = 'YOUR SECRET TOKEN'
config.auth_method = :oauth
end
tweet収集の部分をdaemon化
- script/twitter_streaming.rbを作成
script/twitter_streaming.rb
ENV["RAILS_ENV"] ||= "development"
root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
require File.join(root, "config", "environment")
daemon = TweetStream::Daemon.new('twitter_streaming', :log_output => true)
daemon.on_inited do
ActiveRecord::Base.connection.disconnect!
daemon_logger = Logger.new(File.join(Rails.root, "log", "stream.log"))
Rails.logger = ActiveRecord::Base.logger = daemon_logger
Rails.logger.debug "Listening..."
end
daemon.on_error do |message|
Rails.logger.error message
end
daemon.track('#youtube') do |tweet|
Rails.logger.debug tweet.text
end
- daemonを起動
RAILS_ENV=development ./bin/rails runner script/twitter_streaming.rb start
- ログを確認すると#youtubeを含むtweetが記録されていきます
tail -f log/stream.log
次回は取得したtweetをMongoDBに保存するようにしてみたいと思います。