twitterのログをブログとかに張り付けたい時に
コピペでさくっと張り付けたりができないのが不便だったので
twitter APIをちょっと触って
IRCのログっぽく整形して吐き出すphpを作ってみました。
仕様は下記を参考にさせてもらいました
Twitter API 仕様書 (勝手に日本語訳シリーズ)
http://watcher.moe-nifty.com/memo/2007/04/twitter_api.html
たぶんPHP5じゃないとstrtotimeのあたりが動かないような気がする
PEARのXML_RSSが必要
//アーカイブの表示
function show_archive( $type, $name, $page = 1 ) {
//データ取得
$data = get_archive( $type, $name, $page );
$link = 'http://twitter.com/' . $name;
if( $type == 'rss' ) {
foreach( $data->getItems() as $item ) {
/*
//この辺で正規表現とか使って
//@usernameにリンク貼ったり
//httpからのURLにリンク貼ったりしたらいいと思う
//以下は発言者のページにリンク貼る例
$user_link = '<a href="' . $link . '" target="_blank">' . $name . '</a>:';
$item['title'] = preg_replace( "/^$name:/", $user_link, $item['title'] );
*/
//日付整形
$date = date( "Y/m/d H:i", strtotime( $item['pubdate'] ) );
//結果出力
echo "[{$date}] " . $item['title'] . "<br />¥n";
}
}
//取得同様にRSS以外の場合の出力方法は割愛
}
//アーカイブの取得
function get_archive( $type, $name, $page ) {
$format = array( 'xml', 'json', 'rss', 'atom' );
//不正なフォーマットが指定されたらrssに強制
if( !in_array( $type, $format ) ) {
$type = 'rss';
}
//APIのURL
$url = 'http://twitter.com/statuses/user_timeline/' . $name . "." . $type . '?page=' . $page;
if( $type == 'rss' ) {
return get_archive_rss( $url );
}
//RSS以外の場合の取得の仕方は割愛 falseが返るので注意
return false;
}
//アーカイブの取得(フォーマット:RSS)
function get_archive_rss( $url )
{
require_once( "XML/RSS.php" );
$rss =& new XML_RSS( $url );
$rss->parse();
if( !( $rss->getChannelInfo() ) )
return false;
return $rss;
}
使い方は
<?php show_archive( 'rss', 'kuinazi' ) ?>
てするだけ
上のソースだとrss以外の形式(xml|atom|json)はプログラム書いてないんで動かないヨー
出力結果:(下記はサンプル)
[2008/01/16 14:32] kuinazi: @flower69 幻想でかたるのはそこまでだ!!
[2008/01/16 14:13] kuinazi: @yasuha ぼくのせいじゃないと信じて疑わない
[2008/01/16 14:08] kuinazi: くそ仕事したくない
[2008/01/16 14:08] kuinazi: DJせつこ
[2008/01/16 14:05] kuinazi: DJなんでほたるすぐしんでしまうん
[2008/01/16 14:05] kuinazi: なんでほたるすぐしんでしまうん?
[2008/01/16 12:40] kuinazi: コレ http://twitter.com/kuinazi/statuses/600516962 できた。案外簡単だった
[2008/01/16 11:53] kuinazi: DJハラヘ
[2008/01/16 11:37] kuinazi: @suiton -E -E
[2008/01/16 11:08] kuinazi: ヘドバンのしすぎで首が痛い
[2008/01/16 10:42] kuinazi: @suiton すいとんかわいいよすいとん umumu
[2008/01/16 10:41] kuinazi: @suiton おまえさっきあげたばっかりやろが! umumu
[2008/01/16 10:14] kuinazi: MacBook Airほっしい
[2008/01/16 10:11] kuinazi: コントレックス箱買い こーんとれっくすはこはこはこはこ
[2008/01/16 10:10] kuinazi: @suiton umumu 腹もちがいい!放置しててすまん
[2008/01/16 10:08] kuinazi: @lazzik タイムラインがゆさんだらけと思ったら誕生日!おめでとー!!
[2008/01/16 10:08] kuinazi: おはようござる
[2008/01/15 23:45] kuinazi: 墓山さんに似てるて言われたけどだれ ググったら墓山古墳とかでてきた昔のお墓らしい
[2008/01/15 23:22] kuinazi: @sakabooon ヘドバンしまくってきた!シカリもめっちゃかっこよかった!
[2008/01/15 23:22] kuinazi: きたくったー
20件まで表示
twitter APIのpageクエリはなんか負荷が高い時は使用不可になるらしく
もっと古いのも見たい場合はもうひと工夫する必要がありそう
とりあえず動いたので満足。
ここはもっとこうした方がいいんじゃね?といったご意見大歓迎です><