[MovableType][Perl]XMLRPC::Liteを使って記事を投稿する方法

サンプルコード

mt_post.pl
#!/usr/bin/perl

use strict;
use warnings;
use Encode;
use utf8;
use lib '.';
use XMLRPC::Lite;

# mt-xmlrpc.cgiのURLを書いてください。
my $cgi_url = 'http://example.com/mt/mt-xmlrpc.cgi';

my $blog_id = 1;  # MTのブログID
my $username = 'himitsu';   # MTのログインユーザ名
my $password  = 'himitsu';  # MTのログインパスワード
my $publish = 1;  # 0:非公開, 1:公開

my @text = <DATA>;
my $title = shift @text;
shift @text;

my $body = join '', @text;

my $struct = {
    title => $title,
    description => $body,
};

my $result = XMLRPC::Lite
    ->proxy($cgi_url)
    ->call('metaWeblog.newPost', $blog_id, $username, $password, $struct, $publish)
    ->result;

if(!defined ($result)){die "failed $!";}

print $result;

# 下記の__DATA__以下に記事を書いてください。
# 1行目が件名、3行目以下が本文とみなされます。
# (2行目は空行にしてください)

__DATA__
ここに件名ここに件名ここに件名

ここに本文ここに本文<br />
<h4>HTMLも書けちゃいます。</h4>
ね?簡単でしょ?

使い方

・上記スクリプト(mt_post.pl)をご自分のPCまたはサーバに保存します。(文字コードUTF8で保存)
・URL、アカウント、パスワードなどを適宜書き換えます。
・mt_post.plを実行します。

$ perl mt_post.pl
たったこれだけ!

(注:XMLRPC::Liteを正しく動かすためにはこちらの記事を参照してください。)
カテゴリ: