このサイトのトップページではTwitter APIを利用して、僕のタイムラインを表示しています(実際は、Twitter意外にもいろいろ混ぜて表示していますけどね)。
そんな難しくないし、さんざん既出だと思うけど、とりあえず自分用まとめ。
Twitter APIからXMLを取得
function get_twitter_api($feed){
$_ret = array();
$page = file_get_contents($feed);
$rss = simplexml_load_string($page);
foreach($rss->status as $value){
$value['myPage'] = 'http://twitter.com/'.$value->user->screen_name;
// 日付を統一変数に
$value['datetime'] = $value->created_at;
// リンク、タイトル
$value['link'] = 'http://twitter.com/'.$value->user->screen_name.'/statuses/'.$value->id;
$_ret[] = $value;
}
return $_ret;
}
上記でXMLが取得できます。上記では省いていますが、キャッシュ処理など適宜実装してください。
取得したXMLを出力
ここで、Twitter APIが返す本文はリンクが取れているので、リンクと@にはリンクが付くように加工します。
出力のフォーマットは適宜ご自身の都合に合わせて加工してください。
// テキスト加工
function twitter_text($str){
$str = preg_replace("/https?:\/\/[a-zA-Z0-9;\/?:@&=\+$,\-_\.!~*'\(\)%#]+/",'<a href="$0" rel="external">$0</a>',$str);
$str = preg_replace("/@([A-Za-z0-9_]+)/",'<a href="http://twitter.com/$1" rel="external">@$1</a>$2',$str);
return $str;
}
// XML取得
$feed = get_twitter_api('http://twitter.com/statuses/user_timeline/inc2734.xml');
// 出力用html生成、出力
foreach($feed as $item){
// 日付を加工
$date = date('M d,Y H:i:s',strtotime($item[datetime]));
$_ret .= '<dl>';
$_ret .= '<dt><a href="'. $item['link'].'" rel="external">'.$date.'</a> <a href="'.$item['myPage'].'" rel="external">Twitter</a></dt>';
$twitterText = twitter_text($item->text);
$_ret .= '<dd>'.$twitterText.'</dd>';
$_ret .= '</dl>';
}
echo $_ret;
以上!