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 "<br>REQ-currently-playing: ".$req."<br>";
,两者的格式都很好,我可以看到两个变量都已设置。
我正在使用 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 - 尝试将曲目放入用户的库中