Рубин твит остановится неожиданно - PullRequest
0 голосов
/ 04 января 2012

Я использую tweetstream gem для получения примеров твитов из Twitter Streaming API:

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 твитов (скрипт продолжает работать). В чем может быть проблема?

1 Ответ

0 голосов
/ 04 января 2012

API поиска в Твиттере устанавливает определенные произвольные (извне) ограничения для вещей, из документов :

GET statuses /: id / retweeted_by Показать объекты пользователя до 100 участников, которые ретвитнули статус.

Из драгоценного камня код метода:

# 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, но не вижу записи для «statuses / sample», но, глядя на приведенную выше, я предполагаю, что вы достигли 100 из всех состояний, к которым был получен доступ / xxx.

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

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


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

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

...