Top > Movable Type > XML-RPC [全て開く]
2010年5月18日

PHPでXML-RPCを利用する方法

May 18,2010 1:55 AM
Tag:[, , ]
Permalink

PHPでXML-RPCを利用する方法を紹介します。ここではMovable TypeのXML-RPCを起動するサンプルを示しますが、他のXML-RPCにも応用できると思います。

このエントリーで紹介する方法ではPHP5が必要です。

1.PEAR::XML_RPC2のインストール

PEAR::XML_RPC2のサイトで「Download」をクリック。PEARとはPHPのクラスライブラリ集で、「PHP Extension and Application Repository」の略です。PEAR::XML_RPC2は、XML-RPCプロトコルをPHP5で実装したものです。

PEAR::XML_RPC2のサイト

バージョンのリンクをクリック。これでアーカイブをダウンロードできます。

PEAR::XML_RPC2のダウンロード

ダウンロードしたアーカイブを展開し、中にあるXMLフォルダを任意のフォルダに配置します。ここではアプリケーションディレクトリに配置します。

なお、XAMPPにはC:\xampp\php\PEAR\XMLがあるので、そこにXMLフォルダを配置しても良いでしょう。最新のXAMPPにはもしかしたらバンドルされているかもしれません。

2.cURL拡張モジュールを有効にする

PEAR::XML_RPC2ではcURL拡張モジュール(php_curl.dll)が必要です。XAMPPの場合、php_curl.dllはC:\xampp\php\extにバンドルされているので、php.iniを修正して拡張モジュールを有効にするだけです。php.iniのパスはC:\xampp\apache\binになります。

修正方法は簡単で、

;extension=php_curl.dll

の先頭の「;」を削除して、

extension=php_curl.dll

とするだけです。修正後、XAMPPを再起動してください。再起動しないと設定が反映されません。

3.サンプルコード

XML-RPCのサンプルコードを以下に示します。サンプルはmetaWeblog.getPostを起動するものなので、他のAPIを起動する場合は、パラメータとAPI名を適宜変更してください。

<html>
<head>
<title>XML-RPC Client</title>
</head>
<body>
<h1>XML-RPC Client</h1>
<?php
require_once("./XML/RPC2/Client.php");
 
// metaWeblog.getPostのサンプル
$prefix = 'metaWeblog.'; // プレフィックス
$encoding = 'utf-8'; // 文字エンコーディング
$uri = 'http://localhost/mt/mt-xmlrpc.cgi'; // mt-xmlrpc.cgiのURI
 
$options = array('prefix' => $prefix, 'encoding' => $encoding);
$client = XML_RPC2_Client::create($uri, $options); // XML-RPXクライアントの生成
 
$entry_id = 1; // ブログ記事ID
$user = 'foo'; // ウェブサービスのユーザー名
$pass = 'hogehoge'; // ウェブサービスのパスワード
 
try {
    $result = $client->getPost($entry_id, $user, $pass); // API起動
} catch (XML_RPC2_FaultException $e) {
    var_dump($e);
} catch (Exception $e) {
    var_dump($e);
}
?>
 
<h2><a href="<?php echo $result["permaLink"]; ?>"><?php echo $result["title"]; ?></a></h2>
<div><?php echo $result["description"]; ?></div>
 
</body>
</html>

返却結果をすべて出力したい場合は、

<h2><a href="<?php echo $result["permaLink"]; ?>"><?php echo $result["title"]; ?></a></h2>
<div><?php echo $result["description"]; ?></div>

の代わりに、

<?php var_dump($result); ?>

を記述すると良いでしょう。

4.参考サイト

Comments [0] | Trackbacks [0]
Now loading...
Introduction
List of "XML-RPC"
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.04