我已经这样做有一段时间了,想看看是否有人知道我可能做错了什么。我想要做的是使用提供的 Spotify Web API 将歌曲添加到播放列表。根据此https://developer.spotify.com/documentation/web-api/reference/playlists/add-tracks-to-playlist/上的文档,我需要建立用户的范围。
\n\n“将曲目添加到当前用户\xe2\x80\x99s 私人播放列表(包括协作播放列表)需要播放列表修改私有范围”我已将播放列表创建为协作播放列表,并且我正在使用个人帐户的登录凭据来实现此目的我创建的播放列表。所有这一切都在同一个登录名下。
\n\n我发现,当我尝试添加歌曲时,在调用令牌时,我的范围没有添加到令牌中,导致出现 403 错误。\n该调用如下所示
\n\n\n\n以下是有关使用授权获取正确令牌的文档。\n https://accounts.spotify.com/authorize/?client_id=894400c20b884591a05a8f2432cca4f0&response_type=code&scope=playlist-modify-private&redirect_uri=http:%2F%2Flocalhost:55141/Home /获取令牌/
\n\n如果我在这里进入开发支持\n https://developer.spotify.com/documentation/web-api/reference/playlists/add-tracks-to-playlist/\n并单击绿色的尝试按钮然后请求,还有更多信息一个新的令牌它可以工作。
\n\n底线是我的请求没有接受我的范围请求。有任何想法吗?
\n\n谢谢
\n小智 4
要获取具有特定范围的令牌,您需要转到端点authorize并获取code. 这code是您希望能够 http post 到端点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>
Run Code Online (Sandbox Code Playgroud)
如果有多个范围,则仅在范围之间添加 %20
然后,您将被发送到 Spotify 的网站,他们会验证您是否愿意执行此操作。验证后,您的浏览器会将您重定向到您redirect_uri在上面的网址中设置的内容。在发送到的 URL 末尾,您应该能够看到参数名称code及其分配的代码值。然后,您获取该代码并将其放入端点的 http post body 参数中https://accounts.spotify.com/api/token。确保您准确遵循发布方法中的查询参数要求。
使用 requests 库的 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"]
Run Code Online (Sandbox Code Playgroud)
最后,您应该获得一个 json,其中显示您设置的范围,并稍后刷新令牌以发出更多请求。
我知道这个答案已经很晚了,但我也遇到了同样的问题,这就是我遇到这个问题的方式。我希望这对以后看到这个的人有所帮助。
| 归档时间: |
|
| 查看次数: |
3684 次 |
| 最近记录: |