WikiRpc

WikiRpcとはWikiサイト向けのXMLRPCインターフェイスです。このインターフェースを用いて、Wikiデーターを取得したり、編集したりすることができます。なお、PukiWiki Adv.ではバージョン2を部分的にサポートしています。

参考:

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などでも使用可能です。

コメント