Bec*_*gel 5 oauth spotify node.js oauth-2.0
我正在创建一个node.js应用程序,它将每天更新播放列表(由我拥有凭据的帐户所拥有).根据Spotify文档,要将曲目添加到播放列表(https://developer.spotify.com/web-api/add-tracks-to-playlist/),必须使用oauth2提供授权.
我很难找到一种完全没有重定向/等服务器端的方法.好像我可以获得刷新令牌,我可以使用它吗?
我一直在关注spotify web api节点模块(https://github.com/thelinmichael/spotify-web-api-node),oauth.io和spotify api.
任何想法,将不胜感激!只有一个帐户必须进行身份验证,因此至少目前它可能是硬编码的.
您已经选择了正确的授权流程 - 授权代码,因为您需要一个访问令牌,该令牌连接到拥有您正在更新的播放列表的用户.这当然也使您能够在需要时刷新令牌.(过期时间为一小时,但在应用程序实际需要使用之前,您无需刷新访问令牌.)
作为旁注,Client Credentials流程用于服务器到服务器的通信,不需要用户的许可,例如搜索,读取播放列表或检索新版本.该隐格兰特流是指在前端使用,并且不允许您刷新令牌.
我很难找到一种完全没有重定向/等服务器端的方法.好像我可以获得刷新令牌,我可以使用它吗?
获得刷新令牌后,您可以继续使用它来检索新的访问令牌,这可以在没有任何用户交互的情况下完成.您需要做一些准备工作来检索刷新令牌.
按照描述授权代码流程的步骤,您首先需要将播放列表的所有者指向Spotify帐户服务器上的URL.
该文档包含以下示例URL:
只需更换client_id和redirect_uri使用应用程序的信息.同时修改scope参数以匹配您需要的范围,这是我对您的用例的理解,playlist-read-private,playlist-modify-private,playlist-read-collaborative因为您希望能够读取和修改所有用户的播放列表.state不需要供应.
使用spotify-web-api-node,您可以使用createAuthorizeURL方法生成此URL ,但由于您只是这样做,因此无需为其编写代码.
相反,只需在浏览器中打开URL即可.
如果成功完成,您将获得一些登录舞蹈,您的应用程序会要求您同意阅读和修改播放列表.完成此操作后,Spotify的帐户服务会将浏览器重定向到您的redirect_uriURL,其中code包含查询参数,如授权指南中的步骤3所述.
但是,由于您只执行一次,因此在您自己的计算机上启动Web服务器,将应用程序设置redirect_uri为localhost并完成登录流程就足够了.看一下现成的node.js应用程序的web-api-auth-examples,该应用程序启动快速服务器并读取授权代码.
获得代码后,您可以使用cURL将其交换为访问令牌,如授权指南中的步骤#4所示,或使用web-api-auth-examples存储库中的代码.
最后,在检索到令牌(步骤#5)后,您可以开始将Web API与访问令牌一起使用,并在使用步骤#7中的请求到期时获取新的API.
spotify-web-api-node有一个帮助方法来刷新令牌.在主文档中搜索该refreshAccessToken方法.
授权指南的常见问题解答部分稍微提到了此用例。
正如您所说,您需要使用授权代码流程获取刷新令牌。为此,您需要使用您的用户帐户、您已注册的应用程序的 client_id 以及您需要的范围(这将根据播放列表是私有还是公共而有所不同)来执行 OAuth 流程。然后,使用您获得的刷新令牌和应用程序的客户端密钥,您无需登录表单即可获取访问令牌。
这个相关的 StackOverflow 问题也可能有帮助Spotify 自动播放列表管理与 PHP 后端和速率限制
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |