mixiへの投稿スクリプト
WWW:mixiを使ってメールからmixi日記へ投稿するスクリプト。
webで検索するともっと複雑に「マイミクに投稿があったかチェック」とか「返事をする」とかいろいろできるプログラムが公開されている。だが、基本はアクセスして見に行ってこそのソーシャルネットワーキングじゃないだろうか。日記の投稿は、サーバーが重いとか、とりあえず思いついたものをすぐに、とか、送り込むのが目的だから、別。
そいう目的なので、エラーチェックも適当。ただしパスワードチェックだけはして、他人の投稿は防止する。
$ cat mail2mixi.pl
#!/usr/bin/perl
#
use LWP::UserAgent;
use WWW::Mixi;
use HTTP::Request::Common;
use NKF;
# parameters
my $home_url = 'http://mixi.jp/home.pl';
my $mixi_username = '(メールアドレス)'';
my $mixi_password = '(mixiパスワード)';
$approve = 'メール投稿パスワード';
# Mixi Login
my $mixi = WWW::Mixi->new($mixi_username, $mixi_password);
my $response = $mixi->login;
my $result = $mixi->is_logined;
if ($result) {
} else {
print "loggin failed\n";
exit 1;
}
#### check header and set variables
# header loop
while (
) { last if /^$/;
if (/^Subject:/i) {
$title = $_;
chomp ($title);
$title =~ s/Subject: //;
}
if (/^Approval:/i) {
$approval = $_;
chomp ($approval);
$approval =~ s/Approval: //;
}
}
die "$program: not approved.\n"
unless ($approval eq $approve);
# read message body
$msg ='';
while (
) { $msg = $msg . $_ . "\r";
}
#####################
# $msg contains the message.
# $title contains the title.
# need to be converted to EUC
#
#
$msg = nkf('-e' , $msg);
$title = nkf('-e' , $title);
my @diary = (
'diary_title' => $title,
'diary_body' => $msg
);
# post the body
$result = $mixi->get_add_diary_confirm(@diary);
# checking the result
if ($result) {
exit 0;
} else {
print "Failed\n";
exit 1;
}