ruby-on-rails - Twitter Streaming API 的 Rails gem

标签 ruby-on-rails ruby api twitter

我想知道是否有使用 Twitter Streaming API 的 gem (https://dev.twitter.com/docs/streaming-api)?

谢谢

我发现这个 gem (https://github.com/jnunemaker/twitter) 看起来非常不错,但不支持流 API,是吗?

最佳答案

我过去曾使用 OAuth gem 和 EventMachine 的组合来完成此操作。

require 'eventmachine'
require 'em-http'
require 'json'
require 'oauth'
require 'oauth/client/em_http'

# Edit in your details.
CONSUMER_KEY = your_key
CONSUMER_SECRET = your_secret
ACCESS_TOKEN = your_token
ACCESS_TOKEN_SECRET = your_token_secret

def twitter_oauth_consumer
  @twitter_oauth_consumer ||= OAuth::Consumer.new(CONSUMER_KEY, CONSUMER_SECRET, :site => "http://twitter.com")
end 

def twitter_oauth_access_token
  @twitter_oauth_access_token ||= OAuth::AccessToken.new(twitter_oauth_consumer, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
end

EventMachine.run do
          toFollow=[twitter_id1, twitter_id2]
         http = EventMachine::HttpRequest.new('http://stream.twitter.com/1/statuses/filter.json'
).post(:body=>{"follow"=>toFollow.join(",")},
            :head => {"Content-Type" => "application/x-www-form-urlencoded"},
            :timeout => -1) do |client|
            twitter_oauth_consumer.sign!(client, twitter_oauth_access_token)
        end

        buffer = ""

        http.stream do |chunk|
            buffer += chunk
            while line = buffer.slice!(/.+\r?\n/)
                puts "handling a new event:"+line
            end
        end
        http.errback { puts "Error" }
        http.disconnect { puts "Lost Connection" }

 end

编辑 我根据this修改了我的代码博客文章。

关于ruby-on-rails - Twitter Streaming API 的 Rails gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769046/

相关文章:

ruby-on-rails - 是否可以在不使用 respond_to 方法和使用非常规文件名的情况下呈现 js.erb?

ruby-on-rails - 在 Rspec Rails 3 中使用特性规范嵌套场景

ruby - 简单Ruby程序中的错误

ruby - Gem 中的测试需要测试迁移生成器并为测试应用迁移

javascript - Soundcloud 在 Javascript 中保持连接

python - 如何在单个资源中创建多个 GET 端点?

python - 如何使用 coverage.py 在 Django-Python 中实现像 Ruby-Rails 这样的覆盖率报告?

ruby-on-rails - 在不加载 ActiveRecord 的情况下测试 Rails 模块

ruby-on-rails - Ruby 语法 : can x ('foo' , y : 'bar' , z : 'baz' ) differ from x ('foo' , @yz)?

java - 从 Instagram 链接获取位置信息