我已经来过一段时间了,想看看是否有人知道我可能做错了什么。我正在尝试使用提供的Spotify Web API将歌曲添加到播放列表中。根据此https://developer.spotify.com/documentation/web-api/reference/playlists/add-tracks-to-playlist/上的文档,我需要确定用户的范围。
“将曲目添加到当前用户的私人播放列表(包括协作播放列表)需要playlist-modify-private作用域”,我以协作方式创建了播放列表,并且使用个人帐户的登录凭据访问了我创建的该播放列表。所有这些都在同一登录名下。
我发现的是,在我尝试添加歌曲时,未将我的范围添加到我的令牌中,因此我的令牌导致403错误。 这就是通话的样子
如果我在这里获得开发支持,则更多 https://developer.spotify.com/documentation/web-api/reference/playlists/add-tracks-to-playlist/ 然后单击绿色的try按钮,然后请求一个新的令牌,该令牌将起作用。
最底线是我的请求如何不接受我的范围请求。有任何想法吗?
谢谢
答案 0 :(得分:0)
要获取具有特定范围的令牌,您需要转到authorize
端点并获取code
。 code
是您希望能够http发布到端点https://accounts.spotify.com/api/token
并获得具有所需作用域的令牌的工具。您只需在浏览器中粘贴这样的网址即可获取code
...
https://accounts.spotify.com/authorize?client_id=<client_id>&response_type=code&scope=streaming%20user-read-email%20user-read-private&redirect_uri=<redirect_uri>
如果有多个作用域,则仅在两个作用域之间添加%20
然后您将被发送到Spotify的网站,他们将确认您要这样做。验证后,您的浏览器会将您重定向到您在上述网址中设置redirect_uri
的位置。在发送到该URL的末尾,您应该能够看到参数名称code
以及为其分配的代码值。然后,您获得该代码并将其放在您的http帖子正文参数中到https://accounts.spotify.com/api/token
端点。确保您正确遵循post方法中的查询参数要求。
使用请求库的python帖子示例:
authorization = requests.post(
"https://accounts.spotify.com/api/token",
auth=(client_id, client_secret),
data={
"grant_type": "authorization_code",
"code": <code>,
"redirect_uri": <redirect_uri>
},
)
authorization_JSON = authorization.json()
return authorization_JSON["access_token"]
最后,您应该获得一个json,其中显示了您设置了较长时间的范围,并在以后刷新令牌以发出更多请求。
我知道这个答案已经很晚了,但是我也遇到了同样的问题,这就是我遇到这个问题的方式。希望这对以后有见识的人有所帮助。