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;

}