我使用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条推文(脚本继续运行)后停止打印推文。可能是什么问题?
答案 0 :(得分:0)
Twitter Search API设置了某些任意(来自外部)的限制,from the docs:
获取状态/:id / retweeted_by显示最多100个转发状态的成员的用户对象。
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文档,但没有看到'status / sample'的条目,但是看看上面的那个,我假设你已经达到了100个已经访问过的状态/ xxx。
另外,如果我错了,请纠正我,但我相信Twitter不再接受基本身份验证,您必须使用OAuth密钥。如果是这样,那么这意味着您未经身份验证,搜索API也会以其他方式限制您,请参阅https://dev.twitter.com/docs/rate-limiting
希望有所帮助。
好的,我在那里犯了一个错误,我正在查看搜索 API,我应该一直在查看streaming API(我的道歉),但有可能是我所谈论的事情可能是你问题的原因所以我会把它留下来。 Twitter肯定已经远离基本身份验证,所以我首先尝试解决它,请参阅: