mixiのRSSフィードを取得してみたが利便性薄

こちらの記事を参考にmixiRSSフィードを取得して、自サーバ上のファイルに吐き出し、更新pingを打ってRSSリーダで取得できるようにしてみたけど、使えるかというと微妙なのかなぁという感じ。

mixiRSS Feed | Melanges
http://melanges.duck.nu/2007/08/30_164019.php

コミュニティの書き込みとか、日記の内容とかも吐いてくれるとRSSリーダで他のブログと同列で読めるからとてもいいのに。それはmixiのクローズドな設計思想と相容れないんだろうな。

じゃ、なんで急にRSSフィードなんか吐くようになったのかと思ったら、これは先月追加された(らしい)mixiツールバーのために実装されたものなんですね。

mixiステーション2.2.1で追加されたAPIの発掘
http://ido.nu/kuma/2007/08/01/two-more-api-found-in-mixi-station-221/

以下は、拙作ながらフィードを取得してから自サーバのファイルに吐き出す処理のスクリプト

今後は、少しずつ恥をさらして勉強していこうと思うので、ご指摘等ありましたらよろしくお願いします。

て、今回のは前半のログイン部分はWWW::Mixiのサンプルそのままなので、実際に書いたのは後半だけなのだけど。

#!/bin/perl

use strict;
use warnings;
use WWW::Mixi;
use HTTP::Cookies;
use HTTP::Request::Common;

my $mixi_email              = 'example@domain';
my $mixi_password           = '******';
my $mixi_id                 = 'yourMixiId';
my $login_url               = 'http://mixi.jp/login.pl';
my $home_url                = 'http://mixi.jp/home.pl';

my $mixi = WWW::Mixi->new($mixi_email, $mixi_password);

my $cookie = sprintf('cookie_%s_%s.txt', $$, time);
my $cookie_jar = HTTP::Cookies->new(file => $cookie, ignore_discard => 1);
$mixi->cookie_jar($cookie_jar);

my @form = ('email' => $mixi_email, 'password' => $mixi_password, 'next_url' => $home_url);
my $request = &HTTP::Request::Common::POST($login_url, [@form]);
my $response = $mixi->request($request);

my @target_urls = ( 'http://mixi.jp/atom/tracks/r=2/member_id=$mixi_id',
                    'http://mixi.jp/atom/friends/r=1/member_id=$mixi_id',
                    'http://mixi.jp/atom/updates/r=1/member_id=$mixi_id/-/diary' );

my @output_files = ( 'footmarks.xml',
                     'mymixies.xml',
                     'diary_updates.xml' );

foreach my $file ( @output_files ) {
    unlink $file;
}

my $i = 0;
foreach my $url ( @target_urls ) {
    open OUT, "> $output_files[$i]";
    $request = &HTTP::Request::Common::GET($url);
    $response = $mixi->request($request);
    print OUT $response->content;
    close OUT;
    $i += 1;
}