使用ruby、twitter和gem获得20多个列表成员

使用ruby、twitter和gem获得20多个列表成员,ruby,twitter,Ruby,Twitter,我正在ruby中使用Twitter gem(1.7.1)。我想在Twitter上获得我名单上的成员,但我只得到最后20名成员。我怎样才能得到20多个会员 listmembers = client.list_members(username, listname) listmembers.users.each do |lmname| p lmname.screen_name end 首先,传递一个参数“cursor=-1”。然后你得到前20个。

我正在ruby中使用Twitter gem(1.7.1)。我想在Twitter上获得我名单上的成员,但我只得到最后20名成员。我怎样才能得到20多个会员

listmembers = client.list_members(username, listname)
listmembers.users.each do |lmname| 
              p lmname.screen_name
            end
首先,传递一个参数“cursor=-1”。然后你得到前20个。twitterapi将返回一个名为“next_cursor”的字段——将此字段传递给光标,您将得到下一个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

如果你在它不起作用的时候把screen_name nil输入。因此,请检查您的屏幕名称是否存在。

您能否向我们展示一些代码,以便我们了解您当前的工作方式?如果有效,请不要忘记将我的答案标记为答案:-)那太阴暗了。汤姆帮你解决了这个问题,但你没有为此表扬他。两天后,您创建了自己的答案,并为自己的答案打分。谢谢。这很有效。但是,请在我投票之前修正格式。这个答案是非常多余和自私的,因为@TomvanderWoerdt已经用正确的干代码给了你答案。你只是在两天后接受了他的答案,实际上这让阅读和理解变得更加困难,增加了新手出错的机会。你利用这个机会滥用这个系统来给自己打分。“真是太阴暗了!”弗拉克丁诺我并没有忽视汤姆范德沃德的回答。他的回答对我很有帮助。但是我问了rails,我想分享我的代码,更多的是关于rails的。谢谢你的关注!;)他的答案是正确的!你应该给@TomvanderWoerdt这个答案,而不是你自己。您仍然可以提供另一个答案,但TomvanderWoerdt应该获得公认的解决方案。如果您的答案为Tolen,您应该将其标记为答案
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