技術資料

perlでXML-RPCを使ってブログ記事の投稿・編集を実行する方法

2009.12.08

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

PHPとPerlでファイルパーミッションを変更する方法(chmod関数)

2024.11.16

PHPとPerlには、ファイルのパーミッションを変更するためのchmod関数が標準で用意されています。この記事では、PHPとPerlそれぞれのchmod関数を使ったファイルパーミッション変更の基本的な使い方を紹介します。

Perl PHP

perlでの文字列置換と数値抽出の方法

2023.04.26

perlで特定の文字列から末尾のカンマ区切りの数値部分を抽出する方法を紹介します。s/// 演算子を使った文字列置換の例と、数値が含まれているかを正規表現でチェックする方法を解説します。

Perl

perlでMySQLを操作する基本的なテンプレート

2023.04.08

perlでMySQLデータベースを操作するための基本的なテンプレートを紹介します。DBIモジュールを使用してデータベースに接続し、SQLクエリを実行する方法を解説。

MySQL Perl

perlのsprintfで数字のゼロ埋め—基本的な使い方

2023.04.07

perlのsprintf関数を使って、数字や文字列をフォーマットして埋め込む方法を紹介します。特に数字のゼロ埋めが簡単にできる方法をコード例とともに解説。普段使いで役立つテクニックですが、忘れがちな部分。

Perl

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

お名前 *必須
会社名
メールアドレス *必須
電話番号
URL
お問い合わせのきっかけ
お問い合わせの内容 *必須
個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP