Rails gem для Twitter Streaming API - PullRequest
       2

Rails gem для Twitter Streaming API

2 голосов
/ 07 января 2012

Мне было интересно, есть ли гем для использования Twitter Streaming API (https://dev.twitter.com/docs/streaming-api)?

Спасибо

Я нашел этот гем (https://github.com/jnunemaker/twitter), который выглядит действительно хорошо, но не поддерживает потоковую передачу)API, не так ли?

Ответы [ 2 ]

2 голосов
/ 18 июля 2012

Вы можете использовать это: Tweetstream , который находится поверх em-twitter

2 голосов
/ 07 января 2012

Я делал это в прошлом, используя комбинацию камня OAuth и 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

EDIT Я изменил свой код на основе этого сообщения в блоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...