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

Posted

技术标签:

【中文标题】Spotify 在服务器上获取访问令牌 - Spotify API 有那么糟糕吗?【英文标题】:Spotify getting acces token on a server - is Spotify API that bad? 【发布时间】:2020-02-21 19:06:02 【问题描述】:

我有一个 Python 应用程序,它调用 Spotify API,然后分析结果(搜索歌曲信息并将它们保存在文件中)。我遇到的唯一问题是,无法使用这种糟糕实现的 API 获取授权令牌。

“spotify”包、spotipy 或任何其他第三方库都没有为我提供此功能。显然,如果我有一台服务器,我不会运行任何 GUI 左右,所以我看不到任何提示。

不幸的是,我不是一个在他/她的家庭 Windows 上玩 Node.js 的脚本小子......

有没有什么方法可以在不使用最华丽的 GUI 提示的情况下每次都获得一个新的令牌?

headers = 
    "Accept": "application/json",
    "Content-Type": "application/json",
    "Authorization": "Bearer TEMPORARY_TOKEN_FROM_SPOTIFY"

response = requests.get("https://api.spotify.com/v1/me/player/currently-playing", headers=headers)

这是当前使用来自 spotify 网页的临时访问令牌的代码,但它的过期时间非常短。

fancypants GUI 的另一个问题:如果您使用自己的帐户登录,每个 API 请求都会产生您自己的用户帐户特定的东西,例如“正在播放”功能。

【问题讨论】:

Authorization Code Flow 不幸的是,每个方法都以“显示范围并提示用户登录”开头,因此所有脚本小子都可以单击一下即可登录。就我而言,这不是一个选择。 泰语完全不是这样的。 【参考方案1】:

您可以使用前面提到的授权代码流程并使用其中的刷新令牌部分来更新您的令牌,这样您只需要登录一次,但是您也可以使用客户端凭据流程,但这确实会暴露您的客户端 ID和客户端密钥,仅推荐用于服务器端应用程序,但不要求登录,也不访问任何用户特定的功能。您可以通过Authorisation Guide

了解有关可用流程的更多信息

【讨论】:

以上是关于Spotify 在服务器上获取访问令牌 - Spotify API 有那么糟糕吗?的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Spotify API 获取访问令牌

Spotify API:如何仅为我自己获取访问令牌

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

Spotify API php - 无法请求数据并获取访问令牌

从 javascript [spotify auth] 中的弹出窗口获取访问令牌 url

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