получить более 20 членов списка с помощью ruby, twitter gem - PullRequest
3 голосов
/ 28 ноября 2011

Я использую твиттер Twitter (1.7.1) в ruby.Я хочу, чтобы мой член моего списка в Твиттере, но я только что получил последние двадцать участников.Как я могу получить более двадцати участников?

listmembers = client.list_members(username, listname)
listmembers.users.each do |lmname| 
              p lmname.screen_name
            end

Ответы [ 2 ]

7 голосов
/ 28 ноября 2011

Сначала передайте аргумент "cursor = -1".Затем вы получите первые 20. API Twitter вернет поле с именем «next_cursor» - передайте это курсору, и вы получите следующие 20.

Пример (псевдокод):

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

Подробнее о https://dev.twitter.com/docs/api/1/get/lists/members

1 голос
/ 30 ноября 2011

Я решил свою проблему с помощью «курсора». Это решение мне очень помогло. Как использовать Twitter Api, чтобы получить более 20 членов списка в одном запросе?

Я отредактировал код для ruby. Мой код таков; Я сохранил целочисленное значение,

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

если вы получите имя экрана с нулем, пока оно не будет работать. Итак, проверьте ваше имя_экранов, если оно существует или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...