技術資料

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{
	#-- 投稿成功
}

この記事を書いた人

※上が私です。

奈良市を拠点に、26年以上の経験を持つフリーランスWebエンジニア、阿部辰也です。

これまで、ECサイトのバックエンド開発や業務効率化システム、公共施設の予約システムなど、多彩なプロジェクトを手がけ、企業様や制作会社様のパートナーとして信頼を築いてまいりました。

【制作会社・企業様向けサポート】
  • 専任エンジニアのいない企業様に対するシステム面の不安を解消
  • 柔軟な契約形態や短納期での対応により、急なニーズにも迅速にサポート
  • システムの企画段階から運用まで、ワンストップでのサービスを提供

Webシステムの開発やサイト改善でお困りの際は、どうぞお気軽にご相談ください。小さな疑問から大規模プロジェクトまで、最適なご提案を心を込めてさせていただきます。

ぜひ、プロフィールWeb制作会社様向け業務案内一般企業様向け業務案内もご覧くださいね。

シンプルなSAML認証用SPの構築:第一回 PerlとNet::SAML2で作るメタデータ生成スクリプト

2025.06.06

PerlとNet::SAML2を利用して、シンプルな構成のSAML認証用SPの構築方法をご紹介します。CPANによるモジュール導入、テスト用の自己署名証明書と秘密鍵の準備方法に触れ、SPのエンティティIDやACS URL、エラーURLといった必要情報を含むメタデータをXML形式で生成するスクリプトの実装例を解説します。

Perl SAML認証

シンプルなSAML認証用SPの構築:第三回 PerlとNet::SAML2で作るACSスクリプト

2025.06.10

連載第3回となる本稿では、PerlとNet::SAML2を用いて、ACS (Assertion Consumer Service) スクリプトの作成方法に焦点を当てます。IdPからのSAMLレスポンスを受信し、アサーションの検証やユーザー属性の取得といった重要な処理を実装する手順を、実際のコード例を交えてわかりやすく紹介。SAML認証の全体像とその実現に必要な知識を身につけるための内容です。

Perl SAML認証

シンプルなSAML認証用SPの構築:第二回 PerlとNet::SAML2で作る認証要求送信スクリプト

2025.06.09

本記事は連載第2回として、前回構築したSPメタデータ生成スクリプトに引き続き、IdP(Identity Provider)への認証要求送信処理の実装方法を解説します。PerlとNet::SAML2モジュールを活用し、SAML 2.0仕様に基づいた認証要求の生成、リダイレクト処理、そしてセッションに認証要求IDを保存する基本的な手法をご紹介します。

Perl SAML認証

Movable Type システムログ出力ガイド ― MT::App の log メソッドでエラーメッセージを記録する方法

2025.06.03

Movable Type のシステムログにエラーメッセージや各種情報を出力する方法について、MT::App の log メソッドを利用した具体的な実装例を解説します。ログレベル、クラス、カテゴリを指定することにより、出力内容を柔軟に分類・管理できる仕組みを詳述し、管理画面でのログ確認方法やデータベーステーブルでの確認方法も合わせて説明します。

Movable Type Perl

阿部辰也へのお仕事の依頼・お問い合わせ

軽いご相談もお気軽にどうぞ!

個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP