2

たとえば、Twitter の API でCuresorパラメータを使用する方法がよくわかりません。100 人のフォロワーごとに新しい API 呼び出しを行う必要がありますか?

私が100人以上いると仮定して、フォロワーの完全なリストを取得するためのPHPの例を誰かが提供できれば幸いです...

前もって感謝します!

4

4 に答える 4

2

フォロワーの次の「チャンク」を取得するには、カーソル値を API に戻す必要があります。次に、そのチャンクからカーソル パラメータを取得し、それを戻して次のチャンクを取得します。「次のページを取得する」メカニズムのようなものです。

于 2009-11-23T21:15:21.843 に答える
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());
      }

    }

  }
于 2009-11-23T21:16:01.903 に答える
0

この質問が出されてから、Twitter API は多くの点で変更されました。

Cursor は、多くの結果を含む API 応答をページ分割するために使用されます。たとえば、フォロワーを取得するための 1 回の API 呼び出しでは、最大 5000 個の ID が取得されます。

ユーザーのすべてのフォロワーを取得したい場合は、新しい API 呼び出しを行う必要がありますが、今回は最初の応答にあった「next_cursor」番号を示す必要があります。

役に立つ場合、次の Python コードは特定のユーザーからフォロワーを取得します。

定数で示される最大ページ数を取得します。

禁止されないように注意してください (つまり、匿名呼び出しで 1 時間あたり 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)))
于 2012-01-15T16:40:23.397 に答える