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_tokenrefresh_token。使用 spotify 控制台页面似乎是一种让脚本或原型运行的简单快捷方式,而无需处理设置您自己的网络服务器。

【讨论】:

以上是关于Spotify API:如何仅为我自己获取访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

我无法从 Spotify 为我的应用检索访问令牌

无法从 Spotify API 获取访问令牌

Spotify 在服务器上获取访问令牌 - Spotify API 有那么糟糕吗?

获取适用于 Android 应用的 Spotify API 的访问令牌

Spotify Web API 无法获取访问令牌

从前端 JavaScript 代码获取 Spotify API 访问令牌