Spotify的OAuth无法使用curl获取刷新令牌

时间:2016-01-31 05:44:04

标签: php curl oauth spotify

我一直在为项目创建自己的Spotify API。我遵循了Web API教程,但仍然无法获得刷新令牌的授权。

此请求是在我成功获得第一个授权后立即生成的。

有人能发现我的代码存在问题吗?

//Request for refresh token
$url = "https://accounts.spotify.com/api/token";
$fieldString = "";
$fields = array(
    "grant_type" => "authorization_code",
    "code" => $_GET['code'],
    "redirect_uri" => $spotify->getRedirectURI()
    //"client_id" => $spotify->getClientID(),
    //"client_secret" => $spotify->getClientSecret()
);
$headers = array(
    "Accept: application/json",
    "Content-Type: application/x-www-form-urlencoded",
    "Authorization: Basic ".base64_encode($spotify->getClientID().":".$spotify->getClientSecret())
);

echo http_build_query($fields)."<br/>";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));

$response = curl_exec($ch);
curl_close($ch);

var_dump(json_decode($response));

2 个答案:

答案 0 :(得分:1)

我收到错误回复的原因是因为我需要:

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

插入该行之后,我就可以获得我的令牌了。希望这很有用。

答案 1 :(得分:0)

设置标头的正确选项为CURLOPT_HTTPHEADER,遗憾的是您使用的是CURLOPT_HEADER。这就是为什么您的授权标头没有设置curl请求。

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);