PerlでXML-RPC APIを実装するためのサンプルプログラム(CGI)

語句ログ

無料ブログソフト 59Tracker で面白そうなキーワードや何かの役に立ちそうなことを記録
更新情報の購読  ユーザー登録  
無料ブログソフト 59Tracker のダウンロード

PerlでXML-RPC APIを実装するためのサンプルプログラム(CGI)

PerlでXMLRPC::Liteを使ってXML-RPC サーバーを実装するための最も簡単な例としては、「XMLRPC::LiteでHello, World!」参照していただければ良いのですが、この例だけではクライアントとサーバーの間で具体的にどうやってデータのやり取りを行うのかつかみにくいので、ブログエディターのAPIとして使われているXML-RPC APIでデータを受け渡すだけのサンプルプログラムを作ってみました。処理の内容は、クライアントから渡されたパラメータをサーバー側でログファイルに書き出し、サーバーから返されたデータをクライアント側で画面に出力しているだけです。

XMLRPCサーバー(CGI) - xmlrpc.cgi (一部抜粋)
#!/usr/bin/perl

use strict;
use warnings;

use XMLRPC::Transport::HTTP;

my $xmlrpcserver = XMLRPC::Transport::HTTP::CGI->
dispatch_to('metaWeblog', 'blogger')->handle;

package metaWeblog;

# metaWeblog.newPost (blogid, username, password, struct, publish)
# returns string
sub newPost {
my ($self, $blogid, $username, $password, $content, $publish) = @_;

my $logfile = "xmlrpc.log";
open(OUT, ">>$logfile");
print OUT "metaWeblog.newPost:", "\n";
print OUT "blogid:$blogid", "\n";
print OUT "username:$username", "\n";
print OUT "password:$password", "\n";
print OUT "content:$content->{title},$content->{description},";
print OUT "$content->{mt_excerpt},$content->{mt_keywords}", "\n";
print OUT "publish:$publish", "\n";
close(OUT);

return "OK";
}



XMLRPCクライアント - client.pl(一部抜粋)
#!/usr/bin/perl

use strict;
use warnings;

use XMLRPC::Lite;

my $uri = "http://localhost/xmlrpc.cgi";
my $content;
my @args = ();

my $method = "metaWeblog.newPost";
$content->{title} = 'Title';
$content->{description} = 'Description';
$content->{mt_excerpt} = 'Mt_Excerpt';
$content->{mt_keywords} = 'Mt_Keywords';
@args = ('Blog ID', 'User ID', 'Password', $content, 1);
my $res = call($uri, $method, @args);
print "\n$method:\n";
print "res:$res\n";

# ...

sub call {
my ($uri, $method, @args) = @_;
my $res = XMLRPC::Lite->proxy($uri)->call($method, @args)->result;
return $res;
}


なお、これらのサンプルプログラムを実行するためにはPerlやWebサーバーとCGIが動作する環境が必要です。

参考:
ubicast Blogger が使用しているAPI
無料のブログクライアント「ubicast Blogger」で使われているXML-RPC API。

Movable Type で使える XML-RPC API
Movable Type や TypePad、ココログ 用の XML-RPC API の解説。

Perl でハッシュの配列、配列のハッシュ
ハッシュの配列と配列のハッシュの作り方とその参照方法。
[1203] posted by かがひろ at 2008/07/18 01:58:16 | Comment (0) | Trackback (0) | 0 point

トピック  ブックマーク
   
キーワードperl プログラミング CGI XMLRPC API サンプル 

追記

数字や全角文字の扱い
サーバー側から、Stringの要素に数字のみの文字列や全角文字を設定して返す場合は、

$item->{id} = SOAP::Data->type(string => $id);
$item->{title} = SOAP::Data->type(string => $title);

というふうに型を指定してやら無いとまずいようです。おそらく、全ての要素に型を指定して返すのが筋なのでしょう。
Posted by kagahiro at 2008/07/20 02:30:32
MetaWeblog API リファレンス (Windows Live)
MetaWeblog API リファレンス (Windows Live)
開発者が利用できるメソッドに関する情報と、Windows Live Spaces システムがエラーを返す原因となる操作に関する情報。
Posted by kagahiro at 2008/09/12 11:01:42

関連リンク

テキスト中のキーワードをリンクするPerlサンプルスクリプト
任意のキーワードリストに含まれるテキスト中のキーワードに、特定のページ(URL)にリンクするperlサンプルスクリプトを作ってみました。ブログソフトとか掲示板ソフトを開発する際に役に立つと思います。文字エンコ...
はてなダイアリーが下書き機能、Atom Publishing Protocolに対応
はてなダイアリーに下書き機能に追加された。また、同時にはてなダイアリーの記事の内容を投稿、編集、削除などができる「はてなダイアリーAtomPub(Atom Publishing Protocol)」を公開した。「はてなダイアリーAtomP...

PerlでXML-RPC APIを実装するためのサンプルプログラム(CGI)へのトラックバック

トラックバックURL:

PerlでXML-RPC APIを実装するためのサンプルプログラム(CGI)へのコメント

名前:

メールアドレス:

ホームページURL:


おすすめ  (チェックしてコメントすると新着情報に掲載)
コメント:

FXチャット
Powered by 株とFXの掲示板

新着トピック

FX初心者におすすめのFX業者
SE/プログラマなどのIT転職、求人情報リンク集
[FX]ロングポジション、ショートポジションとは
親指操作の有線トラックボール「Logicool ST-65UPi TrackMan Wheel」
マウスコンピューター、3万9,800円のAtom搭載超小型デスクトップPC「LM-M100S」
容量3GBで独自ドメインが利用可能な有料ブログ「JUGEM PLUS」
無料ホームページサービス「デジデジ」
アクセス解析やSEO対策、集客などに使える無料ブログパーツ
ブログでできるおすすめの無料アフィ
携帯フルブラウザ「jigブラウザ」
FX(外国為替証拠金取引)とは
SMO(Social Media Optimization)とは
はてな、「はてなブックマーク」の新バージョンを2008年11月25日にリリース
マイクロソフト、Windows Server 2008 Hyper-V 日本語版のダウンロード提供開始
Internet Week 2008

<< 2008年07月
1 2 3 4 5
6789 10 11 12
13 14 15 16 17 1819
20212223242526
2728293031

あわせて読みたいブログパーツ

過去ログ
2008/07
2008/06
2008/05
2008/03
2008/02
2008/01
2007/12
2007/11
2007/10
2007/09
2007/08
2007/07
2007/06
2007/05
2007/04
2007/03
2007/02
2007/01
2006/12
2006/11
2006/10
2006/09
2006/08
2006/07
2006/06
2006/05
2006/04
2006/03
2006/02
2005/12
2005/11
2005/10
2005/09
2005/07
2005/05
2005/04
2005/03
2005/02
2004/12
Skype  ブログ  アフィリエイト  Java  GPL  レンタルサーバー  オープンソース  Mozilla  ブラウザ  SNS  ソフトバンク  Oracle  Linux  データベース  SQL  仕事  パソコン  Mac  メディア  プログラミング  コンピュータ  女性歌手  音楽  ダウンロード  インターネット    検索  SEO  ゲーム  2ch  掲示板  CGM  ソフトウェア  派遣  転職  IT  キーボード  コメント  文字  RSS  フィード  ニュース  YouTube  Web  開発  ブックマーク  はてな  Google  広告  AdSense  Firefox  Windows  Vista  マイクロソフト  UNIX  オフィス  Ruby  PHP  書籍  ジャーナリズム  スターウォーズ  ライブドア  事件  マーケティング  アルファブロガー  動画  キーワード  アクセス解析  perl  MySQL  テレビ  携帯電話  NHK  Amazon  インサイダー  CGI  iPod  リンク集  経営  金融  ネットワーク  ビジネス  サービス  インストール  API  映画  投資  株式  MMORPG  最適化  Yahoo  サーバー  求人  ようつべ  Wiki  Wikipedia  無料  日本  政治  匿名  59bbs  ファンド  エンジニア  OS  ムーバブルタイプ  言語  ホームページ  格安    JavaScript  メール  ニコニコ  プロジェクト  マネジメント  オンライン  電通  食べ物  為替  情報操作  プロパガンダ  iPhone  アップル  フリー  プログラマ  おすすめ  値段  ドメイン 

新着トラックバック

[FX]両建のメリットとデメリット
掲示板リンク集(2ch等の掲示板、掲示板検索、画像掲示板)
掲示板リンク集(2ch等の掲示板、掲示板検索、画像掲示板)

新着コメント

おすすめの無料ブログサービスとは(あ)
SE/プログラマなどのIT転職、求人情報リンク集(株式会社アイステージ)
ソフトバンクの新料金プランはどうやらそれなりにお得そうです
ソフトバンクの新料金プランはどうやらそれなりにお得そうです(匿名)
Amazon アソシエイトの新しいリンク作成ツール「Amazon ウィジェット」

Copyright (C) 2004-2008 Kaga, Hiroaki  連絡先   ブログフリーソフト 59Tracker
無料掲示板 59bbs.org   ソーシャルブックマーク b-listers   ブックマーク検索 ネタリスト