[Perl] Twitter APIでフォロワーのステータスを取得する

Twitterの公式APIを利用し、Perlから友達(friends)の情報を取得することが可能だ。Net::Twitterモジュールを使用すれば良い。

流れとしてはインスタンスを生成と同時にログインし、friendsメソッドを叩くだけと非常にシンプルだ。

サンプル

;#
;#Twitterの友達(friends)情報を取得する
;#

#--------------------------------------#
#モジュール
#--------------------------------------#
use strict;
use Net::Twitter;

#------------------------#
#        ログイン        #
#------------------------#
my $twit = Net::Twitter->new(
          username => "katsube"   #ユーザー名
        , password => "hogehoge"  #パスワード
      );

#------------------------#
#        情報取得        #
#------------------------#
#-- Twitterサーバから取得 --#
my $array_ref = $twit->friends();

#-- 取得した情報を表示する --#
foreach my $hash_ref ( @$array_ref ){
  #-- ステータス関連 --#
  print '      ID:', $hash_ref->{'status'}{'id'},         "\n";
  print '  文字列:', $hash_ref->{'status'}{'text'},       "\n";
  print '生成時間:', $hash_ref->{'status'}{'created_at'}, "\n";

  #-- プロフィール関連 --#
  print '            ID:', $hash_ref->{'id'},                "\n";
  print '名前(FullName):', $hash_ref->{'name'},              "\n";
  print '名前(Username):', $hash_ref->{'screen_name'},       "\n";
  print '     画像(URL):', $hash_ref->{'profile_image_url'}, "\n";
  print '           URL:', $hash_ref->{'url'},               "\n";
  print '        説明文:', $hash_ref->{'description'},       "\n";
  print '          場所:', $hash_ref->{'location'},          "\n";
}

実行結果

      ID:107280932
  文字列:ねむいっす
生成時間:Sat Jun 16 14:56:13 +0000 2007

            ID:6853682
名前(FullName):ねぼすけ
名前(Username):Nebosuke
     画像(URL):http://assets2.twitter.com/system/user/profile_image/6853682/normal/4.jpg?1182005467
           URL:http://www.ichikoro.com
        説明文:I'm sleeping not beautiful. But I wait your kiss(w
          場所:Tokyo

「Settings」で情報が設定されていない場合は、もちろん値を取得することは出来ない。APIとして公開されていないデータを取得することはこちらももちろんのこと出来ない。

注意点としては、データの変更を行った後すぐにはAPI上にその変化が現れない点だ。具体的にどの程度の期間かは分からないが、一定時間は古いデータが保持されるようだ。Twitterをブラウザで見たときと取得できる情報に差異がある場合は、API自体のキャッシュを疑ってみると良いかもしれない。

なお、返却されるデータの文字コードはUTF-8である。必要があればJcodeやEncodeなどで文字コードを変更してやれば良い。