Perl モジュール RPC::XML::Client を使用して、Dokuwiki の XMLRPC API を処理しようとしています。別の SO 投稿では、Dokuwiki の XMLRPC API が、プログラムでページを投稿する方法として提案されました。.
何が間違っているのかわかりませんが、次のコードを使用してログオンできません。
#!/bin/env perl
package PostWiki;
use 5.010; # Require at least Perl version 5.10
use strict; # Must declare all variables before using them
use warnings; # Emit helpful warnings
use autodie; # Fatal exceptions for common unrecoverable errors (e.g. open)
use RPC::XML::Client;
my $client = RPC::XML::Client->new('http://example.com/wikiname/lib/exe/xmlrpc.php');
my $logged_on_ok = $client->send_request('dokuwiki.login','username','password');
my $res = $client->send_request('dokuwiki.getVersion');
print $res;
次のエラーが表示されます。
RPC::XML::Client::send_request: HTTP サーバー エラー: 権限がありません
同じユーザー名とパスワードを使用してページに手動でログインするので、問題にはなりません。
remoteuser
wiki にログオンして手動で編集するのに使用するのと同じユーザー名に設定しました。(セキュリティ上の理由から、これは管理者ユーザーとは異なります)。
またsecurecookie
、サイトを編集できるのはごく一部ですが、誰でも自由にサイトを閲覧できるため、チェックを外しました。しかし、私がチェックしたときも機能しませんでした。
サーバー自体には wiki 以外からアクセスできません。それ以外の場合は、ファイルをサーバーにコピーするだけで済みます。