Spotify API 错误 400:“仅支持有效的不记名身份验证”
Posted
技术标签:
【中文标题】Spotify API 错误 400:“仅支持有效的不记名身份验证”【英文标题】:Spotify API error 400: "only valid bearer authentication supported" 【发布时间】:2020-06-11 00:34:27 【问题描述】:我正在使用 api 尝试通过访问令牌获取我的个人资料数据。我使用了网站中给出的授权示例代码中的给定代码,并且我使用了
let parsed = queryString.parse(window.location.search);
let accessToken = parsed.access_token;
console.log(parsed);
console.log(accessToken);
fetch('https://api.spotify.com/v1/me',
headers: 'Authorization': 'Bearer' + accessToken,
json: true
).then((res) => res.json())
.then(data => console.log(data));
但即使访问令牌有效,400 错误仍然出现。我什至检查了该特定功能的 try it 方法,并且使用相同的标记,它能够获取数据。对于我在身份验证示例代码中更改的相关信息,我更改了 redirect_uri = "localhost:8888/callback" 然后我也更改了
res.redirect('http://localhost:3000/profile/?' +
querystring.stringify(
access_token: access_token,
refresh_token: refresh_token
));
转到我的应用程序的个人资料页面。我想知道我是否需要以某种方式授予我的个人资料页面的权限,但我已经将其添加到重定向 url 以防万一。 感谢阅读
【问题讨论】:
【参考方案1】:“Bearer”和您的令牌之间必须有一个空格。这就是缺少的。
let parsed = queryString.parse(window.location.search);
let accessToken = parsed.access_token;
console.log(parsed);
console.log(accessToken);
fetch('https://api.spotify.com/v1/me',
headers: 'Authorization': 'Bearer ' + accessToken,
json: true
).then((res) => res.json())
.then(data => console.log(data));
注意我是如何在“Bearer”之后添加一个空格的。
它也出现在 spotify 网站的示例代码中。 https://developer.spotify.com/documentation/general/guides/authorization-guide/ (没有固定链接,只在本页搜索“bearer”)
另外,我建议您使用 模板文字 来定义此类字符串,因为它更容易、更易读,并且可以防止将来出现此类错误。
headers: 'Authorization': `Bearer $accessToken`
您可以在此处阅读更多相关信息: https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Template_literals
【讨论】:
以上是关于Spotify API 错误 400:“仅支持有效的不记名身份验证”的主要内容,如果未能解决你的问题,请参考以下文章
spotify-web-api-node:authorizationCodeGrant() 给出 400 - 错误请求
Spotify API 授权代码流向我返回 400 错误请求
Python - Spotify API 返回错误 400“格式错误的 JSON”
Spotify API 创建播放列表返回 错误: 状态:400,消息:'解析 JSON 时出错。'
spotify-web-api-node:authorizationCodeGrant()给出400 - 错误请求
requests.exceptions.HTTPError:400 客户端错误:对 url 的错误请求:https://accounts.spotify.com/api/token