雪。だなぁ。

昨夜寒い寒いと言っていたら、今朝起きたら外が白くてびっくり。
ほとんど溶けかかった様な状態なので、屋根から雪がベランダに滑り落ちてけたたましい音を上げた。


こんな時期に雪がふることがあるんだ。
東京でこの時期の雪は41年ぶりらしくて。ホント、冬用のコートをクリーニングに出してなくてよかった。もっとも、正確に言うとクリーニングに出そうと忘れないように何度も玄関のクリーニング用紙袋に入れたことはあったのだが、朝、家を出る時殊の外寒いことが何度かあって袋から取り出していたのだけど。

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();
}
?>