2009-05-28 3 views
1

私はdrupalサイトに簡単なテキスト文字列を投稿しようとしています。 blogger.newPostですべてのテキストをタイトルに設定するので、metaWeblog.newPostを使用して行う必要があります。私はすでにそれを試しました。PHPXMLRPC metaWeblog.newPostを使用したDrupalへのブログ投稿:メソッドパラメータの数が間違っています

私はこれまで、これを持っている:

http://www.sixapart.com/developers/xmlrpc/metaweblog_api/metaweblognewpost.html http://expressionengine.com/wiki/How_to_add_an_entry_using_PHP_and_Metaweblog_API/ http://api.drupal.org/api/function/blogapi_metaweblog_new_post/6

が生成するエラーは以下の通りです:

require_once('xmlrpc-v1.174.inc'); 

$appkey  = "0001000"; 
$blogid  = "blog"; 

$username = "xxxx"; 
$password = "xxxx"; 
$text  = "testing"; 
$boolean = "true"; 

$content['title'] = "Testen van metaWeblog.newPost"; 
$content['description'] = $text; 

$oMessage = new xmlrpcmsg('metaWeblog.newPost'); 

$oMessage->addParam(new xmlrpcval($blogid , 'string')); 
$oMessage->addParam(new xmlrpcval($username , 'string')); 
$oMessage->addParam(new xmlrpcval($password , 'string')); 
$oMessage->addParam($content , 'struct'); 
$oMessage->addParam(new xmlrpcval($boolean , 'boolean')); 

$oClient = new xmlrpc_client("http://example.nl/drupal/xmlrpc.php"); 

$oClient->setDebug(0); 

$oResponse = $oClient->send($oMessage); 

if ($oResponse->faultCode()) { 
    $xWebserviceOutput = $oResponse->faultString(); 
} 
else 
{ 
    $oValue = $oResponse->value(); 
    $xWebserviceOutput = $oValue->scalarval(); 
} 

echo $xWebserviceOutput; 

私はこの文書を使用してきましたよ

Server error. Wrong number of method parameters. 

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

+0

のxmlrpc-v1.174.incが属しているライブラリに? http://phpxmlrpc.sourceforge.netのための奇妙なバージョン番号と思われます。また、どのバージョンのdrupalを使用していますか? – VolkerK

+0

質問に送信する正確な本文を追加することはできますか?それはデバッグに役立つはずです。 – Evert

+0

@VolkerK xmlrpc-v1.174.incはphpxmlrpcの最新バージョンです。これは、lib自身で使用するバージョン番号です。 私はDrupalのv6を使用しています。 @Evert Evertとはどういう意味ですか?私が投稿したコードは、Drupalに何かを投稿するために必要なものでなければなりません。 – h3rj4n

答えて

1

ソリューション:

require_once('xmlrpc-v1.174.inc'); 

$client = new xmlrpc_client("http://example.nl/drupal/xmlrpc.php"); 
$f = new xmlrpcmsg("metaWeblog.newPost", 
    array(
     new xmlrpcval("blog", "string"), // BlogID (Ignored) 
     new xmlrpcval("xxxx", "string"), // User 
     new xmlrpcval("xxxx", "string"), // Pass 
     new xmlrpcval(// body 
     array(
      "title" => new xmlrpcval("Testen van metaWeblog", "string"), 

     ), "struct"), 
     new xmlrpcval(true, "boolean") // publish 
    ) 
); 

$oResponse = $client->send($f); 


for ($i = 0; $i < $f->getNumParams(); $i++) { 
    $e = $f->getParam($i); 
    echo $e->scalarval(); 
} 

$xWebserviceOutput; 

if ($oResponse->faultCode()) { 
    $xWebserviceOutput = $oResponse->faultString(); 
} 
else 
{ 
    $oValue = $oResponse->value(); 
    $xWebserviceOutput = $oValue->scalarval(); 
} 

echo $xWebserviceOutput; 
関連する問題