2011-01-31 6 views
0

Codeigniterでlast.fmから情報を取得しようとしています。lastfmからの最新のトラックをcodeigniterとxmlrpcでリクエストする

$this->load->library("xmlrpc"); 
$this->xmlrpc->server("http://ws.audioscrobbler.com/2.0/", 80); 
$this->xmlrpc->method("user.getrecenttracks"); 
$request = array("rj", "b25b959554ed76058ac220b7b2e0a026"); 
$this->xmlrpc->request($request); 
if(!$this->xmlrpc->send_request()) 
{ 
    echo $this->xmlrpc->display_error(); 
} 

私は常に取得する唯一の応答は次のとおりです。無効なパラメータ - あなたの要求は、要求の配列を持ついくつかのバリエーションを試してみました

必要なパラメータが含まれていませんが、それは単にように動作しません。Iそれを処理してください...

+1

http://codeigniter.com/forums/viewthread/99116/リクエストにAPIキーを含める必要があるようです。 –

+0

はい。私は自分のスクリプトでそれを行います。しかし、私はここにそれを掲示したくなかった;) –

答えて

2

あなたは近くです。 $requestは、実際にこのように記述する必要があります。

$request = array(
       array(
         array(
          'user'=>'rj', 
          'api_key'=>'b25b959554ed76058ac220b7b2e0a026' 
          ), 
         'struct' 
        ) 
       ); 

CodeIgniterのXML-RPCクラス構築物は、このようになりますことを、実際の要求:あなたは一例Last.fm XML-RPCリクエストを見ることができます

<?xml version="1.0"?> 
<methodCall> 
    <methodName>user.getrecenttracks</methodName> 
    <params> 
     <param> 
      <value> 
       <struct> 
        <member> 
         <name>user</name> 
         <value> 
          <string>rj</string> 
         </value> 
        </member> 
        <member> 
         <name>api_key</name> 
         <value> 
          <string>b25b959554ed76058ac220b7b2e0a026</string> 
         </value> 
        </member> 
       </struct> 
      </value> 
     </param> 
    </params> 
</methodCall> 

here。 「最初のparamノードのstructを使用して名前付き引数としてparamsを送信する」必要があります。心の中でそれを維持、CodeIgniter docs状態:あなたは、いくつかの 異なるデータ型を持っている場合

あなたは 文字列以外のデータ型を使用している場合、または、あなたがデータを、独自の配列に を 各パラメータを配置します2番目の の位置に入力します。

希望するものがあります。

関連する問題