Twitterの公式APIを利用して、Perlから友達のステータスを過去分などまとめて取得することが可能だ。Net::Twitterモジュールを用いる。
過去24時間以内に更新された自分の友達(friends)のステータス(発言)を、最大20件まで取得することができる。発言内容と合わせて、発言したユーザーの情報も自動的にくっついてくる。
サンプル
;# ;#Twitterの自分・友人のステータスを取得する ;# #--------------------------------------# #モジュール #--------------------------------------# use strict; use Net::Twitter; #------------------------# # ログイン # #------------------------# my $twit = Net::Twitter->new( username => "katsube" #ユーザー名 , password => "hogehoge" #パスワード ); #------------------------# # 情報取得 # #------------------------# #-- Twitterサーバから取得 --# my $array_ref = $twit->friends_timeline(); #-- 取得した情報を表示する --# foreach my $hash_ref ( @$array_ref ){ #-- 発言 --# print ' ID:', $hash_ref->{'id'}, "\n"; print ' 文字列:', $hash_ref->{'text'}, "\n"; print '生成時間:', $hash_ref->{'created_at'}, "\n"; #-- 発言したユーザー情報 --# print ' ID:', $hash_ref->{'user'}{'id'}, "\n"; print '名前(FullName):', $hash_ref->{'user'}{'name'}, "\n"; print '名前(Username):', $hash_ref->{'user'}{'screen_name'}, "\n"; print ' 画像(URL):', $hash_ref->{'user'}{'profile_image_url'}, "\n"; print ' URL:', $hash_ref->{'user'}{'url'}, "\n"; print ' 説明文:', $hash_ref->{'user'}{'description'}, "\n"; print ' 場所:', $hash_ref->{'user'}{'location'}, "\n"; }
実行結果
ID:107283632 文字列:今更ながらスチームボーイ見た。普通に面白いじゃん(w 生成時間:Sat Jun 16 14:59:23 +0000 2007 ID:6846192 名前(FullName):Makito Katsube 名前(Username):katsube 画像(URL):http://assets2.twitter.com/system/user/profile_image/6846192/normal/8641_2991091234.jpg?1181964549 URL: 説明文: 場所: 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
新しい物から順番に並んでいる。リストの中には自分自身の発言も含まれる。もし取り除きたい場合は取得した後に$hash_ref->{'user'}{'id'}
などを参照し取り除く。
返却される文字コードはUTFー8となっている。もし変更する必要があるなら、JcodeやEncodeを用いて変換してやれば良い。