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公開してくれよ


いろいろ表示するバージョン

ID:

題名のみのバージョン

ID:

いろいろ表示するバージョンのコード

#!/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);