mixiにアクセス


 WWW::Mixiモジュールを使うと簡単です。
 Perlモジュール/WWW::Mixiに詳しい情報があります。
 ppmでもインストールできますが、バージョンが古くて(2006/05/07現在バージョン0.31)機能が少ないので上記サイトかCPANのものを使ってください。
use strict;
use warnings;
use Encode;
use WWW::Mixi;

my $mixi = WWW::Mixi->new(
	'メールアドレス',
	'パスワード',
	'-log' => 1,
	'-logcode' => 'sjis'
);

my $login = $mixi->login();
if ($login->is_error) {
	die get_error_message($login);
}

my $res = $mixi->get('home.pl');
if ($res->is_error) {
	die get_error_message($res);
}
my @items = $mixi->parse_home_new_bbs($res);

print "[コミュニティ最新書き込み]\n";
print "\n";
foreach my $item (@items) {
	printf "Time   : %s\n", $item->{time};
	printf "Subject: %s\n", get_convert_string($item->{subject});
	printf "Name   : %s\n", get_convert_string($item->{name});
	printf "Link   : %s\n", $item->{link};
	print "\n";
}

my $show_log = $mixi->get('show_log.pl');
if ($show_log->is_error) {
	die get_error_message($show_log);
}
my @logs = $mixi->parse_show_log($show_log);

print "[足あと]\n";
print "\n";
foreach my $log (@logs) {
	my $name = $log->{name};
	Encode::from_to($name, "euc-jp", "cp932");
	
	printf "Time: %s\n", $log->{time};
	printf "Name: %s\n", get_convert_string($log->{name});
	printf "Link: %s\n", $log->{link};
	print "\n";
}

sub get_convert_string {
	my $str = shift;
	Encode::from_to($str, "euc-jp", "cp932");
	return $str;
}

sub get_error_message {
	my $res = shift;
	die sprintf "%s(%s)",
		$res->request->uri,
		get_convert_string($res->status_line);
}

関連項目

なし