Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用codeigniter和xmlrpc从lastfm请求用户最近跟踪_Php_Codeigniter_Xml Rpc_Last.fm - Fatal编程技术网

Php 使用codeigniter和xmlrpc从lastfm请求用户最近跟踪

Php 使用codeigniter和xmlrpc从lastfm请求用户最近跟踪,php,codeigniter,xml-rpc,last.fm,Php,Codeigniter,Xml Rpc,Last.fm,我正在尝试使用Codeigniter从last.fm获取一些信息 $this->load->library("xmlrpc"); $this->xmlrpc->server("http://ws.audioscrobbler.com/2.0/", 80); $this->xmlrpc->method("user.getrecenttracks"); $request = array("rj", "b25b959554ed76058ac220b7b2e0a026

我正在尝试使用Codeigniter从last.fm获取一些信息

$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 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>
CodeIgniter的XML-RPC类构造的实际请求如下所示:

$request = array(
                 array(
                       array(
                             'user'=>'rj', 
                             'api_key'=>'b25b959554ed76058ac220b7b2e0a026'
                            ),
                       'struct'
                      )
                );
<?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>

user.getrecenttracks
用户
rj
api_密钥
b25b959554ed76058ac220b7b2e0a026
您可以看到一个示例Last.fm XML-RPC请求。请注意,您应该“使用第一个参数节点中的结构将参数作为命名参数发送”。记住,状态:

如果使用的数据类型不是 字符串,或者如果您有几个 不同的数据类型,您将放置 将每个参数放入自己的数组中, 数据类型在第二个字段中 位置


希望这会有所帮助。

看起来您可能还需要在requestYes中包含API密钥。我在脚本中这样做。但我不想把它贴在这里;)