Spotify 请求令牌返回 invalid_client

Posted

技术标签:

【中文标题】Spotify 请求令牌返回 invalid_client【英文标题】:Spotify request token returns invalid_client 【发布时间】:2018-02-18 18:24:30 【问题描述】:

我希望有人可以在这里帮助我:

我有一个应该使用 Spotify API 的应用程序。但是在请求授权本身之后,我一直在请求令牌。相关代码如下:

function post($content, $url,$clientId,$clientSecret)

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
curl_setopt($ch, CURLOPT_HTTPHEADER,
    array(
        'Content-Type: application/x-www-form-urlencoded',
        'Authorization: Basic '.base64_encode($clientId).':'.base64_encode($clientSecret)));
return curl_exec($ch);

$clientId="4df42e27a76d41f9961b0952102fexxx";
$clientSecret="3088a8b6132b40dc980540880cf5bxxx";
$content=array(
'grant_type' => 'authorization_code',
'code' => $_GET["code"],
'redirect_uri' => 'http%3A%2F%2Fhome.xxx.de%2Ftoken.php',
);
echo post($content,"https://accounts.spotify.com/api/token",$clientId,$clientSecret);

不幸的是,结果是 "error":"invalid_client" 我不知道为什么...

【问题讨论】:

我真的希望你的秘密与你在这里发布的有很大的不同(不仅仅是被替换的 3 x ......,只有大约 1M 的可能性可以检查)。你也试过base64_encode($clientId.':'.$clientSecret) 吗? 【参考方案1】:

授权

必填。

包含客户端 ID 和客户端密钥的 Base 64 编码字符串。该字段必须具有以下格式:

  Authorization: Basic <base64 encoded client_id:client_secret>

我将其读作base64_encode($clientId.':'.$clientSecret)

【讨论】:

以上是关于Spotify 请求令牌返回 invalid_client的主要内容,如果未能解决你的问题,请参考以下文章

Spotify API 授权代码流向我返回 400 错误请求

Axios GET 请求 Spotify API 返回 401

(Spotify iOS SDK) renewSession 总是返回 nil session

Spotify:发布到 api/token 给出了错误的请求,但在 curl 中工作

Spotify Web API - 没有令牌认证的请求

Spotify Web Api 令牌请求响应 400