LastFM track.updateNow在PHP中播放

问题描述

要更改当前播放的曲目,您必须在请求中发送“ api_sig”作为post参数(请参阅last.fm文档)。我正在按照文档中的说明构建此字符串,但仍然始终收到错误:“无效的方法-该程序包中没有使用该名称方法”。但是,我不认为该方法不存在,我认为我的api_sig是不正确的,因为没有错误的api_sig错误代码,并且我无法更新其他方法(例如track.scrobble)。 / p>

到目前为止,这是我的代码(我知道它不是很干净。只要它起作用,它就会被更改:D):

 $url = 'http://ws.audioscrobbler.com/2.0/?api_key='.$apikey.'&format=json';
    $params = array(
        "api_key" => $apikey,"method" => "track.updateNowPlaying","artist" => "eiffel65","track" => "Blue","sk" => $sessionkey
    );
    ksort($params);
    $sigstr = "";
    foreach ($params as $x => $x_value) {
        $sigstr .= $x.$x_value;
    }
    $params = array(
        "api_key" => urlencode($apikey),"method" => urlencode("track.updateNowPlaying"),"artist" => urlencode("eiffel65"),"track" => urlencode("Blue"),"sk" => urlencode($sessionkey)
    );
    $sigstr .= $apisecret;
    $sigstr = md5(utf8_encode($sigstr));

    $curl = curl_init();
    $headers = array();
    $params["api_sig"] = $sigstr;

    curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
    curl_setopt($curl,CURLOPT_POSTFIELDS,$params);
    curl_setopt($curl,CURLOPT_HEADER,0);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl,CURLOPT_URL,$url);
    curl_setopt($curl,CURLOPT_TIMEOUT,30);
    $json = curl_exec($curl);
    curl_close($curl);

我将不胜感激任何提示和/或代码片段,以帮助我解决问题!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)