0

我正在尝试通过spotipy它的prompt_for_user_token实用程序运行 Spotify 身份验证工作流程。我正在按照这里的指示,官方 Spotify Web API 教程,逐字逐句地告诉我。并在此处使用 Paul Lamere 的 Spotipy 项目中的示例

我有一个高级 Spotify 帐户和一个注册应用程序,其中包含客户端 ID 和客户端密码(均为 32 个字符串)以及示例 ( ...//localhost:8888/callback) 中给出的重定向 URI。全部显示在我的申请页面 ( ...//developer.spotify.com/my-applications)

app.js从教程中的“authentication_code”示例(已修改为包含我的应用程序的客户端 ID、客户端密码和重定向 URI)启动我的应用程序服务器。

$node app.js 
Listening on 8888

CLIENT_ID按照教程中的说明将我的应用程序的、CLIENT_SECRET和导出REDIRECT_URI到我的环境后,我使用我的用户名(实际上是用户“id” - 9 位数字)运行user_playlists.pyPaul Lamere 示例中的示例脚本,因为它是唯一的命令行参数。spotipy

浏览器 (chrome) 之前已打开,可选择通过 Facebook 或密码登录 Spotify。我选择 Facebook,然后我收到一个浏览器警报,内容如下:

localhost:8888 says:
There was an error during the authentication.

使用浏览器网址:

...localhost:8888/#error=state_mismatch

并且prompt_for_user_token函数永远不会返回。每次我现在运行示例脚本时,浏览器都会打开,但会打开一个空白页面,并带有相同的浏览器警报和 URL。

对任何人来说,我做错了什么,或者如何找出身份验证错误的性质或任何细节,或者如何解决state_mismatch错误,甚至它意味着什么,是否显而易见?

4

1 回答 1

0

我发现了一个很好的基本示例,它通过 spotify 不依赖于 node 或 util.prompt_for_user_token这里由 perelin 贡献的 spotify oauth 工作流。

此外,spoti py文档没有指出任何给定的 spoti py方法需要几个用户级别范围中的哪一个,这将是有帮助的。但此外,在开始为 spotify 编写客户端代码之前了解作用域是一个好主意。例如:user_playlists 需要“playlist-read-private”,而不是“user-library-read”,这在 spoti py文档中没有明确说明,因此您需要查看官方的 spotify web api 文档和请注意您的 spoti py方法(可能)需要哪个范围。

于 2016-08-09T00:34:08.287 回答