I am using Twitter gem (1.7.1) in ruby. I want to get my member of my list on Twitter but I just get last twenty members. How can I get more than twenty members?
listmembers = client.list_members(username, listname)
listmembers.users.each do |lmname|
p lmname.screen_name
end
First, pass an argument "cursor=-1". You then get the first 20. The Twitter API will return a field called "next_cursor" - pass this to the cursor and you get the next 20.
Example (pseudocode):
cursor = -1
do {
# get data, using the cursor
data = {}
cursor = data.next_cursor
} while (len(data) > 0) # Loop while we're still getting data back
More info on https://dev.twitter.com/docs/api/1/get/lists/members
I solved my problem with using "cursor". This solution helped me quite. How to use Twitter Api To Get more than 20 list Members in a single request?
I edited the code for ruby. My code is that; I kept an integer value,
pagevalue = 0
if (listmembers.next_cursor == 0) # it means we have only one page
listmembers.users.each do |lmname|
p lmname.screen_name
end
end
else # it means we have pages more than one
while (listmembers.next_cursor != 0)
listmembers.users.each do |lmname|
p lmname.screen_name # check screen_name is nil or not
end
end
pagevalue = listmembers.next_cursor
listmembers = client.list_members(username, listname, :cursor => pagevalue)
if (listmembers.next_cursor == 0) # for last page
listmembers.users.each do |lmname|
p lmname.screen_name
end
end
end
if you get screen_name nil in while it won't work. So, check your screen_name if it exists or not.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With