了解Twitter API的“Cursor”参数

时间:2009-11-23 21:11:04

标签: php twitter cursor

我真的不知道如何在Twitter的API中使用 Curesor 参数,例如 - here。 我应该为每100个粉丝打一个新的API调用吗?

如果有人可以提供一个PHP示例来获取完整的关注者列表,假设我有超过100个,我会喜欢它。

提前致谢!

4 个答案:

答案 0 :(得分:2)

您需要将游标值传递回API以获取关注者的下一个“块”。然后从该块中获取游标参数并将其传回以获取下一个块。这就像是“获取下一页”机制。

答案 1 :(得分:1)

尽管你前一段时间问过这个问题,但我希望这将是更准确的答案。

  1. Twitter不提供有关next_cursor含义的信息。只有how cursor works
  2. 这只是Twitter管理分页的一种简单方法。
  3. «该功能旨在线性使用,每个用户一次设置一个光标。»Source
  4.   

    «这对你来说效率可能更低,但更有效率   对我们来说。»Twitter Staff

    <强> BUT ... 之前有人在断开的链接中询问«游标是否存在?似乎答案是“是”»

    这意味着你可以在0之前保存你的最后一个光标并在下次继续它。

答案 2 :(得分:0)

查看http://code.google.com/p/twitter-boot/source/browse/trunk/twitter-bot.php

foreach ($this->twitter->getFollowers(,0 ) as $follower)//the 0 is the page
    {
      if ($this->twitter->existsFriendship($this->user, $follower['screen_name'])) //If You  Follow this user
          continue;    //no need to follow now;
      try
      {
        $this->twitter->createFriendship($follower['screen_name'], true); // If you dont Follow Followit now
        $this->logger->debug('Following new follower: '.$follower['screen_name']);
      }
      catch (Exception $e)
      {
        $this->logger->debug("Skipping:".$follower['screen_name']." ".$e->getMessage());
      }

    }

  }

答案 3 :(得分:0)

自从提出这个问题以来,Twitter API已经在很多方面发生了变化。

Cursor用于对API响应进行分页,结果很多。例如,获取关注者的单个API调用将检索最多5000个ID。

如果您想获得用户的所有关注者,您必须进行新的API调用,但这次您必须指出第一个响应中的“next_cursor”数字。

如果它有用,下面的python代码将从给定用户检索关注者。

它将检索由常量指示的最大页面。

小心不要被禁止(即:匿名电话不要超过150次api电话/小时)

import requests
import json
import sys


screen_name = sys.argv[1]
max_pages = 5
next_cursor = -1

followers_ids = []

for i in range(0,max_pages):
    url = 'https://api.twitter.com/1/followers/ids.json?screen_name=%s&cursor=%s' % (screen_name, next_cursor)
    content = requests.get(url).content
    data = json.loads(content)
    next_cursor = data['next_cursor']

    followers_ids.extend(data['ids'])

print "%s have %s followers!" % (screen_name, str(len(followers_ids)))