Spotify API:如何仅为我自己获取访问令牌
Posted
技术标签:
【中文标题】Spotify API:如何仅为我自己获取访问令牌【英文标题】:Spotify API: How to get access token for only myself 【发布时间】:2020-05-05 00:09:35 【问题描述】:我正在关注此tutorial 以从我的每周发现播放列表中获取曲目列表。该教程提到,在请求播放列表信息之前,我需要为自己的帐户获取 OAuth 令牌。这是通过转到随机控制台页面并单击页面末尾的“获取令牌”来完成的(这需要我登录到我的 Spotify 帐户并批准控制台访问我的帐户数据)。
但是,我想以编程方式获取此令牌,而不是每次需要此令牌时手动单击“获取令牌”并登录我的帐户。我有的是:
我的 Spotify 用户 ID(来自我的帐户页面)
我刚刚在 Spotify for Developers 下创建的应用程序的 Spotify 客户端 ID
此应用程序的客户端密码
关于如何发送 GET 和 POST 请求的基本知识(使用 Python 的 requests
库)
如何获取 OAuth 令牌,或者至少每次都生成一个新令牌,使用上面的一些 信息?
【问题讨论】:
【参考方案1】:这取决于你想要做什么。如果您只需要一个令牌来查询 api 以查找歌曲/艺术家/等,那么您可以使用不需要任何用户输入的 Client Credentials auth 流。您只需在此处将您的客户端 ID 和密码交换为您将在后续请求中使用的 access_token
。
如果您想访问或更改某些用户信息,您必须使用same spotify authorization page 上的其他两个流程之一。您需要通过此请求传递范围列表,将用户定向到基于 spotify-url 的授权页面,并能够为其提供重定向 url,一旦用户处理access_token
对象的接收登录到 Spotify 页面。
我认为没有一种方法可以实现这些流程之一,您需要请求用户范围,而无需运行某种 Web 服务器来接受传递到 spotify auth url 的重定向,然后保存给定的令牌。
查看您为 spotify 的控制台页面发布的链接后,您似乎可以使用这些 API 请求中的任何一个来生成令牌,包括您想要的范围。它所做的只是在后台执行正常的授权流程,跳过它向您返回一个秘密的步骤,您的服务器随后可以交换access_token
和refresh_token
。使用 spotify 控制台页面似乎是一种让脚本或原型运行的简单快捷方式,而无需处理设置您自己的网络服务器。
【讨论】:
以上是关于Spotify API:如何仅为我自己获取访问令牌的主要内容,如果未能解决你的问题,请参考以下文章
Spotify 在服务器上获取访问令牌 - Spotify API 有那么糟糕吗?