たとえば、Twitter の API でCuresorパラメータを使用する方法がよくわかりません。100 人のフォロワーごとに新しい API 呼び出しを行う必要がありますか?
私が100人以上いると仮定して、フォロワーの完全なリストを取得するためのPHPの例を誰かが提供できれば幸いです...
前もって感謝します!
フォロワーの次の「チャンク」を取得するには、カーソル値を API に戻す必要があります。次に、そのチャンクからカーソル パラメータを取得し、それを戻して次のチャンクを取得します。「次のページを取得する」メカニズムのようなものです。
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());
}
}
}
この質問が出されてから、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)))