2009-05-28 3 views
1

Drupal 사이트에 간단한 텍스트 문자열을 게시하려고합니다. blogger.newPost를 사용하면 모든 텍스트를 title로 설정하므로 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; 
관련 문제