I'm using list/members/create_all and list/members/destroy_all which both claim a limitation of 100 users per call. I limit my calls to 90 users, but I still intermittently receive a Too many terms specified in query
error ... I'll even intermittently get this error when I limit my calls to 40 users or less.
It seems to apply only to certain users that I make the call on behalf of: I can iterate over some users just fine with my 90-user limit, but some of the users I iterate over will error out with Too many terms specified in query
unless I severely limit my calls (for example, 10 users at a time) ... but that severe limitation just presents a different problem - I hit Rate Limit when I try to make so many small calls for the user.
I'm iterating over each user in my database with User.all.each do |u|
, and I'm creating a connection to Twitter for each user within that block with:
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
)
This is the code I use to remove users from a list:
removing_from_list.each_slice(90) do |remove_ids|
client.list_remove_members(list_id, remove_ids)
sleep 2
end
and this code to add users to a list:
adding_to_list.each_slice(90) do |adding_ids|
client.list_add_members(list_id, adding_ids)
sleep 2
end
I've experienced this issue both in use of the Twitter gem as well as by accessing the Twitter API directly with Rested (a Mac REST client).