我正在使用list/members/create_all和list/members/destroy_all两者都声称每次通话限制为 100 个用户。我将呼叫限制为 90 个用户,但我仍然间歇性地收到Too many terms specified in query
错误……当我将呼叫限制为 40 个或更少的用户时,我什至会间歇性地收到此错误。
它似乎仅适用于我代表调用的某些用户:我可以在 90 个用户的限制下迭代一些用户,但我迭代的一些用户将出错,Too many terms specified in query
除非我严格限制我的调用(例如,一次 10 个用户)......但是这种严重的限制只会带来一个不同的问题 - 当我尝试为用户拨打这么多小电话时,我遇到了速率限制。
我正在使用 迭代我的数据库中的每个用户User.all.each do |u|
,并且我正在为该块中的每个用户创建与 Twitter 的连接:
client = Twitter::Client.new(
:consumer_key => TWITTER_CONSUMER_KEY,
:consumer_secret => TWITTER_CONSUMER_SECRET,
:oauth_token => u.twitter_token,
:oauth_token_secret => u.twitter_secret
)
这是我用来从列表中删除用户的代码:
removing_from_list.each_slice(90) do |remove_ids|
client.list_remove_members(list_id, remove_ids)
sleep 2
end
并且此代码将用户添加到列表中:
adding_to_list.each_slice(90) do |adding_ids|
client.list_add_members(list_id, adding_ids)
sleep 2
end
我在使用 Twitter gem 以及直接使用 Rested(Mac REST 客户端)访问 Twitter API 时都遇到了这个问题。