Richiedi recenti utente di LastFM con CodeIgniter e XMLRPC
-
27-10-2019 - |
Domanda
Sto cercando di ottenere alcune informazioni da Last.fm con CodeIgniter.
$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();
}
L'unica risposta che ricevo sempre è: Parametri non validi: la richiesta manca di un parametro richiesto
Ha provato alcune varianti con l'array di richieste, ma semplicemente non funziona nel modo in cui lo gestisco ...
Soluzione
Sei vicino. $request
dovrebbe effettivamente essere scritto in questo modo:
$request = array(
array(
array(
'user'=>'rj',
'api_key'=>'b25b959554ed76058ac220b7b2e0a026'
),
'struct'
)
);
La richiesta effettiva che i costrutti di classe XML-RPC di CodeIgniter saranno quindi così:
<?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>
Puoi vedere un esempio per ultimo.fm xml-rpc qui. Si noti che è necessario "inviare i parametri come argomenti denominati usando una struttura nel primo nodo Parame." Tenendo presente questo, il CODEIGNITER DOCS stato:
Se si utilizzano tipi di dati diversi dalle stringhe o se si dispone di diversi tipi di dati, inserirai ciascun parametro nel suo array, con il tipo di dati nella seconda posizione.
Spero possa aiutare.