1

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 サーバー エラー: 権限がありません

同じユーザー名とパスワードを使用してページに手動でログインするので、問題にはなりません。

remoteuserwiki にログオンして手動で編集するのに使用するのと同じユーザー名に設定しました。(セキュリティ上の理由から、これは管理者ユーザーとは異なります)。

またsecurecookie、サイトを編集できるのはごく一部ですが、誰でも自由にサイトを閲覧できるため、チェックを外しました。しかし、私がチェックしたときも機能しませんでした。

サーバー自体には wiki 以外からアクセスできません。それ以外の場合は、ファイルをサーバーにコピーするだけで済みます。

4

1 に答える 1