mixiで任意ユーザの全日記を一覧表示する
コバヤシマサヨシ2006.09.20.
Powered by
WWW::Mixi(Ver.0.47).
- WWW::Mixiを使って何かやりたかったもので。
- IDを入れると、そのユーザの全日記を表示する。
- 題名のみの表示と、更新日や若干の内容を含んだ表示の2タイプ。
- ものすごい日記書きまくってる人のIDを入れたりすると、かなーり重くなったりします。ご愛敬。
- ページ最下部に全日記数を表示。
- マイミク一覧を取得する $mixi->get_list_friend() 関数が、うまく動いてないよう(2006.9.20)。これさえ動けばもっと色々できるんだが。他にも動作していない関数が多数。IDからニックネーム取得することすらできないなんて。
- っていうかmixiがAPI公開してくれよ
いろいろ表示するバージョンのコード
#!/usr/bin/perl
use CGI;
use Jcode;
use WWW::Mixi;
my $query = CGI->new;
#データ取得用アカウントの設定
my $mixi_email = 'masayashi@gmail.com';
my $mixi_password = 'num_ami';
# ログイン
my $mixi = WWW::Mixi->new($mixi_email, $mixi_password);
my $response = $mixi->login;
#フォームからIDを受け取る
my $id = $query->param('id');
#新着日記を取得
my $url = "http://mixi.jp/list_diary.pl?id=$id";
my @items = $mixi->get_list_diary($url);
#「次の○件」を解析して最後まで取得
my $next = $mixi->get_list_diary_next($url);
while($next){
@items_next = $mixi->get_list_diary($next->{'link'});
push @items, @items_next;
$next = $mixi->get_list_diary_next($next->{'link'});
}
#結果表示用HTMLのヘッダ
print "Content-type: text/html;charset=euc-jp\n\n";
print "<html><head>";
print '<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">';
print '<link rel="STYLESHEET" href="style.css" type="text/css">';
print '</head><body class="bgcolor01"><div align="center"><div class="work_main"><h1>';
print "ID:$id";
print 'の日記一覧</h1><br /><br /><div style="margin-left:50px; margin-right:50px;"><dl>';
#結果表示ルーチン
foreach my $item (@items){
my ($subject, $link, $time, $description, $comment) =
($item->{'subject'}, $item->{'link'}, $item->{'time'},
$item->{'description'}, $item->{'count'});
print "<dt>$time <a href='$link'>$subject</a><br /></dt>";
print "<dd>$description</dd>";
print "<dd>コメント数:$comment</dd>";
print "<br />";
$count++;
}
print "</dl>";
print "全日記数:$count<br />";
#結果表示用HTMLのフッタ
print "<br /></div></div></div></body></html>\n";
exit(0);