WikiRpc
WikiRpcとはWikiサイト向けのXMLRPCインターフェイスです。このインターフェースを用いて、Wikiデーターを取得したり、編集したりすることができます。なお、PukiWiki Adv.ではバージョン2を部分的にサポートしています。
参考:
- http://www.hyuki.com/yukiwiki/wiki.cgi?WikiRPC
- http://www.ecyrd.com/JSPWiki/wiki/WikiRPCInterface2
- http://trac-hacks.org/wiki/XmlRpcPlugin
- https://www.dokuwiki.org/devel:xmlrpc
wiki.getRPCVersionSupported
サポートしているWikiRpcのバージョン
パラメータ
なし
返り値
2
wiki.aclCheck
ページの権限
パラメータ
ページ名
返り値
詠込み可能時は1。それ以外は0
wiki.getPage
ページの生のテキストを返す
パラメータ
ページ名
返り値
Wikiの生のテキスト
wiki.getPageVersion
ページのバックアップ情報を取得
wiki.getPageInfo
wiki.getPageHTML
wiki.getPageHTMLVersion
wiki.putPage
wiki.listLinks
wiki.getAllPages
wiki.getBackLinks
wiki.getRecentChanges
使用例
PHPでWikiのデーターを取得する
まず、XML-RPC for PHPをダウンロードしてこの例のルートディレクトリに設置してください。
このサンプルは、Wikiのパース処理を別のサーバーで行い、簡単に負荷分散したい時などに役立つでしょう。
<?php include('lib/xmlrpc.inc'); // XML-RPC for PHPライブラリへのパスを入れてください。 // インスタンスを生成 $c = new xmlrpc_client('http://<pukiwikiのアドレス>/?cmd=xmlrpc'); // デバッグを有効にする $c->setDebug(1); // XMLメッセージを作成する $m = new xmlrpcmsg('wiki.getPage',array(new xmlrpcval('取得したいページ名', 'string'))); // send the message and wait for response $r = $c->send($m); if($r == false) die('error'); if(!$r->faultCode()){ // 成功時 $v = php_xmlrpc_decode($r->value()); echo "$v"; }
jQueryでページのHTMLを取得する
var xml='<?xml version="1.0"?><methodCall><methodName>wiki.getPageHTML</methodName><params><string>取得したいページ</string></params></methodCall>'; $.ajax({ url: "http://<pukiwikiを設置しているアドレス>/", data: xml, param:{cmd:'xmlrpc'}, contentType:"text/xml", type:'post', success:function(data){ console.log(data); } });
C#で書かれたサンプル
https://github.com/logue/WikiBrowser
WikiのXMLRPCのアドレスを入力すると、ページ一覧が取得され、そこをクリックするとWikiのソースを見ることができるコードのサンプルです。PukiWiki Adv.用に作ったものではないので、docwikiやtracなどでも使用可能です。