12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TwitterAPIで、フォロワー,フォロー情報を200人以上取得する方法(3000人まで)

Last updated at Posted at 2019-02-17

TwittwrAPIはフォロワー情報を取得する際の取得する数が最大200人までなので、全てのフォロワーの情報を取得する方法を書きます。

TwitterAPIでは、カーソリングという技術を使い、取得したデータをページネートしている。

Twitter REST API では‘カーソリング(cursoring)’と呼ばれる技術を使って大量の取得結果をページ制御しています。 カーソリングでは取得結果を複数のページに分割し(ページのサイズはリクエスト時に設定したcountパラメータによって決められます)、それらのページ間を前後に移動するための方法が用意されています。
(Twitter開発者ドキュメント )

このページ間を前後に移動するための方法が、APIを呼び出す時にparams内でcursorを指定するというものになる。
デフォルトでは-1に設定されていますが、cursorにnext_cursorを指定することで、繰り返した場合に次のページの情報を取得できるということになる。

下記サンプルコードです。

$params = [
    'cursor' => '-1',
    'count' => '200',
    'skip_status' => 'true',
    'screen_name' => '...',
];
$followers = [];

do {
    $response = $connection->get('followers/list', $params);
    if (!isset($response->users)) {
        echo 'TwitterAPIの制限がかかっちゃってる!ごめんなさい!' . PHP_EOL;
        break;
    }
    $followers = array_merge($followers, $response->users));
} while ($params['cursor'] = $response->next_cursor_str);

// ↑ $params['cursor'] に代入しつつカーソルの値をループ条件に使う

これで、$follower[]に全てのフォロワーの情報が格納されている。

参照
http://westplain.sakuraweb.com/translate/twitter/API-Overview/Using-cursors-to-navigate-collections-Cursoring.cgi

~~ 追記 ~~
2019/02/18
ご指摘いただいた内容に基づいて内容を修正しました。

12
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?