1

xml-rpc を使用して単純なブログ投稿を drupal サイトに投稿しようとしています。これには IXR_Library を使用します。

これは、metaWeblog.newPost を使用したサンプル コードです。

$url = 'http://drupalpage.de/xmlrpc.php';
$user = 'drupaluser';
$pass = 'drupalpass';

$post = array(
            'title' => 'New Title'
            'description' => 'Some content…'
);

$IXR = new IXR_Client($url);

$status = $IXR->query('metaWeblog.newPost', 
'1',
            $user,
            $pass,
            $post,
            true
        );

このスクリプトを呼び出すと、drupal から次のような結果が得られます。

[params] => Array
                (
                    [0] => Array
                        (
                            [faultCode] => 1
                            [faultString] => Entweder versuchten Sie einen fremden Blog zu editieren oder Sie haben keine Berechtigung Ihren eigenen Blog zu editieren.
                        )

                )

drupal システムからこの「許可通知」を受け取った理由がわかりません。変数 $user/$pass の正確な値でシステムにログインできます。

いくつかの詳細情報:「system.listMethods」を呼び出すと、次の戻り値が返されます。

[0] => Array
(
    [0] => system.multicall
    [1] => system.methodSignature
    [2] => system.getCapabilities
    [3] => system.listMethods
    [4] => system.methodHelp
    [5] => blogger.getUsersBlogs
    [6] => blogger.getUserInfo
    [7] => blogger.newPost
    [8] => blogger.editPost
    [9] => blogger.getPost
    [10] => blogger.deletePost
    [11] => blogger.getRecentPosts
    [12] => metaWeblog.newPost
    [13] => metaWeblog.editPost
    [14] => metaWeblog.getPost
    [15] => metaWeblog.newMediaObject
    [16] => metaWeblog.getCategories
    [17] => metaWeblog.getRecentPosts
    [18] => mt.getRecentPostTitles
    [19] => mt.getCategoryList
    [20] => mt.getPostCategories
    [21] => mt.setPostCategories
    [22] => mt.supportedMethods
    [23] => mt.supportedTextFilters
    [24] => mt.getTrackbackPings
    [25] => mt.publishPost
)

「metaWeblog.getCategories」を呼び出すと、drupal システムからのカテゴリを含む正しい return-array が取得されます。

私の問題を解決するために、他の多くのバリアントを試しました。しかし、「blogger.getUsersBlogs」または「blogger.getUserInfo」を呼び出すと、同じ許可通知が表示されます。

私が間違っていることを誰かが知っていますか?

4

0 に答える 0