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();
}
?>
(Visited 1 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です