Confluence
Confluenceっていうのは、Javaでできた企業用のWiki。さすがに企業が使ってるプロダクトだけあって、MediaWikiとはちょっと違う。さすが。しかも、ライセンス制だからそんなに高くない。一人月額1000円とか。
Confluenceの外部APIをたたくだけの簡単なお仕事です。
ということで、調査。とりあえず日本語マニュアルがあった。素晴らしい。
16ページの「リモートAPIを有効にする」・・・なんだけど、いきなり詰まった。「管理コンソール」が見つからない・・・・。やっと見つけた。「Confluence管理者」っていうところ。
さらに、左側の一番上の「一般設定」というところをクリックして、そのページの真ん中あたりを見るとあった。「リモート API (XML-RPC & SOAP):」これをONにする。
リモート API への匿名アクセスは、オフにしておく。
基本のAuth
<?php $client = new XML_RPC_client( $xmlrpc_path, $xmlrpc_host, 80 ); // ログイン String login(String username, String password) $username = new XML_RPC_Value('admin', 'string' ); $password = new XML_RPC_Value('**********', 'string' ); //メッセージ作成 $message = new XML_RPC_Message( 'confluence1.login', array($username, $password));
おっと、PEARマニュアル見たらXML_RPC2使えって言われたよ。
あぁ、こりゃ確かに便利やわ・・・。XML-RPCメソッドがオブジェクトのメソッドとしてコールでくる。
<?php require_once 'XML/RPC2/Client.php'; $options = array( 'prefix' => 'confluence1.' ); //クライアントの作成 $client = XML_RPC2_Client::create( sprintf('http://%s/rpc/xmlrpc', CONFLUENCE_SERVER), $options); try { $re = $client->login('admin', '*************'); } catch (XML_RPC2_FaultException $e) { // The XMLRPC server returns a XMLRPC error die('Exception #' . $e->getFaultCode() . ' : ' . $e->getFaultString()); } catch (Exception $e) { // Other errors (HTTP or networking problems...) die('Exception : ' . $e->getMessage()); }
で、帰ってくるトークンが今後のAPIの時の全てのキーとして使えるもの。
とりあえず、ここまで。