mixiのRSSフィードを取得してみたが利便性薄
こちらの記事を参考にmixiのRSSフィードを取得して、自サーバ上のファイルに吐き出し、更新pingを打ってRSSリーダで取得できるようにしてみたけど、使えるかというと微妙なのかなぁという感じ。
mixiのRSS 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; }