我无法打印出我在Twitter上关注的人员列表。这段代码的工作时间为250,但现在我跟踪了320人。
失败说明:代码请求超出了Twitter的速率限制。代码会在重置限制所需的时间内休眠,然后再次尝试。
我认为它的编写方式,它只是不断重试相同的整个可抛弃请求,而不是从它停止的位置开始。
MAX_ATTEMPTS = 3
num_attempts = 0
begin
num_attempts += 1
@client.friends.each do |user|
puts "#{user.screen_name}"
end
rescue Twitter::Error::TooManyRequests => error
if num_attempts <= MAX_ATTEMPTS
sleep error.rate_limit.reset_in
retry
else
raise
end
end
谢谢!
答案 0 :(得分:3)
以下代码将返回用户名数组。绝大多数代码是由作者http://workstuff.tumblr.com/post/4556238101/a-short-ruby-script-to-pull-your-twitter-followers-who
编写的首先创建以下定义。
def get_cursor_results(action, items, *args)
result = []
next_cursor = -1
until next_cursor == 0
begin
t = @client.send(action, args[0], args[1], {:cursor => next_cursor})
result = result + t.send(items)
next_cursor = t.next_cursor
rescue Twitter::Error::TooManyRequests => error
puts "Rate limit error, sleeping for #{error.rate_limit.reset_in} seconds...".color(:yellow)
sleep error.rate_limit.reset_in
retry
end
end
return result
end
其次使用以下两行收集您的推特朋友
friends = get_cursor_results('friends', 'users', 'twitterusernamehere')
screen_names = friends.collect{|x| x.screen_name}
答案 1 :(得分:2)