perlでXML-RPCを使ってブログ記事の投稿・編集を実行する方法
作成日:2009.12.08
perlを使用してXML-RPC APIを利用したブログ記事の新規投稿と編集方法を解説します。metaWeblog.newPostメソッドを用いた投稿の仕組みや、既存の記事を編集するためのmetaWeblog.editPostメソッドについて、実際のコードとともに説明します。
error この記事は最終更新日から15年以上が経過しています。
XML-RPC API を使って、perl で各種ブログに記事を投稿したり、記事を編集したりする方法の解説です。
metaWeblog.newPost メソッドを使ったブログ記事の新規投稿
metaWeblog.newPost メソッドを使って、ブログ記事の新規投稿をする perl スクリプトは以下のような感じ。
use XMLRPC::Lite;
#-- 以下四項目はブログサービスによって異なる
$blogid = 'abe';
$username = 'tatsuya';
$password = 'password';
$endpoint = 'http://www.xxxx.com/xml-rpc.cgi';
$result = XMLRPC::Lite
-> proxy($endpoint)
-> call('metaWeblog.newPost', $blogid, $username, $password,
{
#-- ブログ記事タイトル
'title' => XMLRPC::Data->type('string', $entry_title),
#-- ブログ記事本文
'description' => XMLRPC::Data->type('string', $entry_body),
#-- コメントを受け付けるかどうか(1でコメント受付)
'mt_allow_comments' => 1,
#-- トラックバックを受け付けるかどうか(1でトラックバック受付)
'mt_allow_pings' => 1,
#-- ブログ記事本文の「続き」部分
'mt_text_more' => XMLRPC::Data->type('string', $entry_more),
#-- ブログ記事の概要
'mt_excerpt' => XMLRPC::Data->type('string', $entry_excerpt),
#-- ブログ記事のキーワード
'mt_keywords' => XMLRPC::Data->type('string', $entry_keyword),
},
1
)
-> result;
if(!defined($result)){
#-- 投稿エラー
}else{
#-- 投稿成功
#-- $result にエントリーIDが入るので、保存しておく
}
metaWeblog.editPost メソッドを使ったブログ記事の編集
metaWeblog.editPost メソッドを使って、既存のブログ記事を編集する perl スクリプトは以下のような感じ。
前述の metaWeblog.newPost で取得したエントリーIDを保持している必要があります。
use XMLRPC::Lite;
#-- 投稿時に取得したエントリーID
$postid = '00001';
#-- 以下三項目はブログサービスによって異なる
$username = 'tatsuya';
$password = 'password';
$endpoint = 'http://www.xxxx.com/xml-rpc.cgi';
$result = XMLRPC::Lite
-> proxy($endpoint)
-> call('metaWeblog.editPost', $postid, $username, $password,
{
#-- ブログ記事タイトル
'title' => XMLRPC::Data->type('string', $entry_title),
#-- ブログ記事本文
'description' => XMLRPC::Data->type('string', $entry_body),
#-- コメントを受け付けるかどうか(1でコメント受付)
'mt_allow_comments' => 1,
#-- トラックバックを受け付けるかどうか(1でトラックバック受付)
'mt_allow_pings' => 1,
#-- ブログ記事本文の「続き」部分
'mt_text_more' => XMLRPC::Data->type('string', $entry_more),
#-- ブログ記事の概要
'mt_excerpt' => XMLRPC::Data->type('string', $entry_excerpt),
#-- ブログ記事のキーワード
'mt_keywords' => XMLRPC::Data->type('string', $entry_keyword),
},
1
)
-> result;
if(!defined($result)){
#-- 投稿エラー
}else{
#-- 投稿成功
}

奈良市を拠点に、25年以上の経験を持つフリーランスWebエンジニア、阿部辰也です。
これまで、ECサイトのバックエンド開発や業務効率化システム、公共施設の予約システムなど、多彩なプロジェクトを手がけ、企業様や制作会社様のパートナーとして信頼を築いてまいりました。
【制作会社・企業様向けサポート】
Webシステムの開発やサイト改善でお困りの際は、どうぞお気軽にご相談ください。小さな疑問から大規模プロジェクトまで、最適なご提案を心を込めてさせていただきます。
ぜひ、プロフィールやWeb制作会社様向け業務案内、一般企業様向け業務案内もご覧くださいね。
Movable Typeプラグイン入門:MT::Author で実現するロール付与の手法
2025.03.26
本記事では、Movable Type のプラグイン開発において、MT::Author オブジェクトを利用したユーザーへのロール付与手法を詳しく解説します。具体的なコード例とともに、ユーザー、ブログ、ロールの各オブジェクトの取得方法や、add_role メソッドを活用したロール付与処理の流れを紹介。実務に直結する実装ポイントを分かりやすく解説しています。
Movable Typeプラグイン入門:MT::Authorを活用した新規ユーザー作成の実例解説
2025.03.21
本記事では、Movable Typeプラグインの実装において、MT::Authorオブジェクトを活用したユーザーの新規作成処理の具体例を解説します。コードサンプルを通して、ユーザーの存在確認から新規作成、各種プロパティの設定手順やログ出力まで、実践的なポイントを詳述しています。
Movable Typeプラグイン開発入門:第七回 Transformerプラグインで管理画面UIをカスタマイズする
2025.03.19
この記事では、Movable Type 管理画面の見た目を変更するために、Transformerプラグインで設定フォームをカスタマイズする方法を解説しています。具体的な文字列置換の実装例と、実運用時に考慮すべきポイントをわかりやすくまとめています。
Movable Typeプラグイン開発入門:第六回 ローカライゼーションの実装方法
2025.03.13
第六回では、Movable Typeプラグインのローカライゼーションに焦点を当て、多言語対応の具体的な手法を紹介します。多言語対応の実装方法を学び、プラグインの利用者層を広げましょう。