Twitter APIとPEAR::Services::Twitterで全フォロワーの情報を取得
Twitter APIを通して、あるユーザの全フォロワーを取得したいと思ったら以下の様な形になる。
ここでは、スクリーン名と設定してあるアイコンの保管位置を取得している。
ミソと言うわけではないが、$info = $twitter->statuses->followers(array("cursor" => -1)); としないと、フォロワーの人数が100人を超えた場合に続けてデータを取得するためのcursorの値が取れない。
最初設定しないで、cursorの値が取れず大いに悩んだ。
参照: Twitter REST API Method: statuses followers
<?php require_once 'Services/Twitter.php'; require_once 'HTTP/OAuth/Consumer.php'; $consumerkey = ""; // Twitterから開発者が取得したConsumer keyを設定 $consumersecret = ""; // Twitterから開発者が取得したSecret keyを設定 $accesstoken = ""; // TwitterのOAuth認証で得ているAccess Token $accessecret = ""; // TwitterのOAuth認証で得ているAccess Token Secret try{ $twitter = new Services_Twitter(); $oauth = new HTTP_OAuth_Consumer($consumerkey, $consumersecret, $accesstoken, $accessecret); $twitter->setOAuth($oauth); $followerprop_ary = array(); $cursor = -1; do{ $info = $twitter->statuses->followers(array("cursor" => $cursor)); foreach($info->users as $follower){ $tmp = array( "screen_name" => $follower->screen_name, "profile_img" => $follower->profile_image_url, ); $followerprop_ary[] = $tmp; } $cursor = $info->next_cursor_str; }while($cursor != "0"); print_r($followerprop_ary); printf("Total %d followers.\n", count($followerprop_ary)); } catch (Services_Twitter_Exception $e) { echo $e->getMessage(); } ?>