2012-01-04 4 views
0

Я использую tweetstream gem, чтобы получить образцы твиты из Twitter Streaming API:Рубин tweetstream неожиданно прерываться

TweetStream.configure do |config| 
    config.username = 'my_username' 
    config.password = 'my_password' 
    config.auth_method = :basic 
end 

@client = TweetStream::Client.new 

@client.sample do |status| 
    puts "#{status.text}" 
end 

Однако этот сценарий будет остановить печать твиты после того, как около 100 твитов (скрипт продолжает работать). В чем может быть проблема?

ответ

0

щебетать Search API устанавливает определенные произвольные (с внешней стороны) ограничения для вещей, from the docs:

GET statuses/:id/retweeted_by Show user objects of up to 100 members who retweeted the status.

From the gem, код для метода:

# Returns a random sample of all public statuses. The default access level 
# provides a small proportion of the Firehose. The "Gardenhose" access 
# level provides a proportion more suitable for data mining and 
# research applications that desire a larger proportion to be statistically 
# significant sample. 
def sample(query_parameters = {}, &block) 
    start('statuses/sample', query_parameters, &block) 
end 

Я проверил API Docs но не видите запись для «statuses/sample», но, глядя на одно выше, я предполагаю, что вы достигли 100 из всех статусов/xxx.

Кроме того, исправьте меня, если я ошибаюсь, но я считаю, что Twitter больше не принимает базовый аут, и вы должны использовать ключ OAuth. Если это так, то это означает, что вы не прошли проверку подлинности, и API поиска также ограничит вас другими способами, см. https://dev.twitter.com/docs/rate-limiting

Надеюсь, что это поможет.


Хорошо, я сделал ошибку там, я смотрел на поиск API, когда я искал на streaming API (мои извинения), но вполне возможно, некоторые из вещей, о которых я говорил может быть причиной ваших проблем, поэтому я оставлю это. Twitter определенно отошел от базовой аутентификации, поэтому я хотел бы попробовать решения, что первый, см:

https://dev.twitter.com/docs/auth/oauth/faq

+0

Спасибо за ваш ответ подробно. Я пробовал OAuth, затем я получаю сообщение об ошибке: «Не удалось подключиться после 7 попыток». После поиска в Google я нашел это [вопросы] (https://github.com/intradea/tweetstream/issues/50), которые предлагают вернитесь к базовой аутентификации. Что мне делать? – daisy

+1

Вы можете попробовать другой драгоценный камень щебета или использовать драгоценный камень Oauth для проверки своих учетных данных. Я вижу, что есть и твиттер twitter_oauth, который вы можете попробовать https://github.com/moomerman/twitter_oauth#readme. Если у вас такая же проблема, это, вероятно, Twitter. Я прошел процесс написания собственного сценария подключения к Oauth и Twitter, а не использования драгоценных камней, некоторое время назад. Если у вас по-прежнему возникают проблемы после того, как другие драгоценные камни дают мне знать, и я отправлю код для вас, чтобы попробовать. – iain

+1

Вы можете также проверить страницу https://dev.twitter.com/status всякий раз, когда вы ее запускаете. Я думал, что есть способ проверить это программно в одном из API, но я не могу его найти. – iain