LoginSignup
18

More than 5 years have passed since last update.

Rails4でTwitterStreamingAPIを使う その1

Posted at

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に保存するようにしてみたいと思います。

参考

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
18