【发布时间】:2014-05-29 03:46:48
【问题描述】:
我对@987654321@ 中的friends 方法感到困惑。我看到Twitter::REST::FriendsAndFollowers#friends 使用了GET friends/list 请求和cursor_from_response_with_user 方法。
GET friends/list 的文档说请求限制为 20 个用户。我假设这意味着每个请求将返回 20 个朋友。但是,假设我关注 22 个人,我使用以下内容:
twitter_client = Twitter::REST::Client.new { [my credentials here] }
twitter_client.friends
这将返回一个包含所有 22 个朋友的数组。我没有做任何事情来弄乱游标,那为什么我得到所有 22 个?关于我的主要问题...
在我的应用程序中,当有人导入他们的朋友时,我会遍历他们并创建一些其他记录。像这样的
twitter_client.friends.each do |friend|
SomeModel.do_what_you_need_to_with(friend)
AnotherModel.do_something_else_with(friend)
end
假设某人有 5001 个 Twitter 朋友。 (令人印象深刻!)我认为这将是速率限制等问题。获得所有朋友并遍历所有朋友的最安全方法是什么?
我试图弄清楚 gem 的游标文档,但 friends 返回 22 个结果的事实让我很失望......
【问题讨论】:
-
我曾研究过类似的功能。但是对于速率限制,它完全取决于 twitter api,你无能为力。你可以做的只是定期运行一个 rask 来获取朋友。
标签: ruby-on-rails twitter gem iteration rate-limiting