Запросить последние данные от lastfm с помощью codeigniter и xmlrpc

Я пытаюсь получить некоторую информацию от last.fm с помощью 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(); } 

Единственный ответ, который я всегда получаю: Недопустимые параметры. В вашем запросе отсутствует требуемый параметр

Он пробовал некоторые варианты с массивом запросов, но он просто не работает так, как я его обрабатываю …

Вы близки. $request действительно должен быть написан следующим образом:

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

Фактический запрос, созданный конструкциями класса XML-RPC CodeIgniter, будет выглядеть следующим образом:

 <?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> 

Здесь вы можете увидеть пример Last.fm XML-RPC. Обратите внимание, что вы должны «отправить свои параметры как именованные аргументы, используя структуру в первом узле param». Помня об этом, в документах CodeIgniter указано:

Если вы используете типы данных, отличные от строк, или если у вас несколько разных типов данных, вы поместите каждый параметр в свой собственный массив с типом данных во второй позиции.

Надеюсь, это поможет.