Spotify Web API - 缺少 401 权限

Posted

技术标签:

【中文标题】Spotify Web API - 缺少 401 权限【英文标题】:Spotify web API - 401 Permissions missing 【发布时间】:2018-03-03 01:49:43 【问题描述】:

我正在尝试使用 spotify 网络 API 构建一个 Spotify 网络播放器。 我在 spotify 上注册了我的应用程序并将回调 URL 列入白名单。 然后授权过程工作正常。我收到了发出其他请求的令牌。 但是当我尝试发出一个简单的当前正在播放的请求时,

https://developer.spotify.com/web-api/get-the-users-currently-playing-track/

我收到了

Array ( [error] => Array ( [status] => 401 [message] => Permissions missing ) )

php 代码是:

session_start();
$req = $_SESSION['token_type'] . " " . $_SESSION['token'];
$headers_after_token = array(
   "Accept: */*",
   "Authorization: " . $req);
$url="https://api.spotify.com/v1/me/player/currently-playing";
echo "<br>REQ-currently-playing: ".$req."<br>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_after_token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
echo "<br><br>";
print_r($response);

$_SESSION['token_type'] 包含 API 端点参考中提到的“Bearer” https://developer.spotify.com/web-api/endpoint-reference/

$_SESSION['token'] 包含在身份验证过程后检索到的令牌。

感谢echo "&lt;br&gt;REQ-currently-playing: ".$req."&lt;br&gt;";,两者的格式都很好,我可以看到两个变量都已设置。

我正在使用 XAMPP v3.2.2 来部署 php 页面。

【问题讨论】:

当您授权用户时,您是否拥有user-read-currently-playing 和/或user-read-playback-state 范围? 你解决了问题还是放弃了? 不,我当然没有放弃,不,我没有这个范围。我必须在哪里插入那个字符串? 好的,它适用于第一个请求中的scope。谢谢。因此,如果我需要其他权限,我需要重新发送 authorization 吗?如果你写一个答案,我可以设置为“解决方案”。再次感谢 @Magnus Eriksson,我情不自禁......我在瑞典有个朋友叫 Erik Magnusson!这有多罕见? (对不起,伙计们!) 【参考方案1】:

为了能够获取当前播放,您需要在授权用户时添加范围user-read-currently-playing 和/或user-read-playback-state

使用这种授权,用户需要同意您的应用可以代表他们执行的操作。有些东西是默认包含的,但有些东西(就像这样)需要用户的额外权限。

如果您在文档中看到它说一个函数需要“这个和那个”范围,您需要将它添加到授权中。

【讨论】:

以上是关于Spotify Web API - 缺少 401 权限的主要内容,如果未能解决你的问题,请参考以下文章

Axios GET 请求 Spotify API 返回 401

向 Spotify API 发出 PUT 请求时出现 401 错误

我在 c# wpf 中使用 spotify api 收到错误 401 未授权

Spotify API 错误 401 - 尝试将曲目放入用户的库中

尝试使用其 API 在 Spotify 中创建播放列表时出现“请求失败,状态码为 401”错误

构造函数中缺少分号(React + Spotify API)