我正在尝试通过spotipy
及其prompt_for_user_token
实用程序运行Spotify身份验证工作流程。我正在遵循here这个官方Spotify网络API教程的说明,逐字逐句地告诉我。并使用Paul Lamere的Spotipy项目here
我有一个优质的Spotify帐户和一个注册的应用程序,其中包含客户端ID和客户端密钥(均为32个字符串)和示例中给出的重定向URI(...//localhost:8888/callback
)。全部显示在我的申请页面上(...//developer.spotify.com/my-applications
)
从app.js
本教程中的“authentication_code”示例启动我的应用程序服务器(已修改为包含我的应用程序的客户端ID,客户端密钥和重定向URI)。
$node app.js
Listening on 8888
将我的应用CLIENT_ID
,CLIENT_SECRET
和REDIRECT_URI
导出到我的环境后,如教程中所述,我运行了来自Paul Lamere {{1}的user_playlists.py
示例脚本我的用户名(实际上是用户“id” - 9位数字)的示例,因为它只是命令行参数。
之前已打开浏览器(chrome),可选择通过Facebook或密码登录Spotify。我选择Facebook,然后我得到一个浏览器警报:
spotipy
浏览器网址为:
localhost:8888 says:
There was an error during the authentication.
...localhost:8888/#error=state_mismatch
函数永远不会返回。每次我现在运行示例脚本时,浏览器都会打开,但会打开一个空白页面,并显示相同的浏览器警报和URL。
对任何人来说,我做错了什么,或者如何找出认证错误的性质或任何细节是什么或如何解决prompt_for_user_token
错误甚至是什么意思?
答案 0 :(得分:0)
我找到了一个很好的基本示例,通过spotipy来定位oauth工作流程,它不依赖于perelin提供的节点或util.prompt_for_user_token here。
此外,spoti py 文档并未指出任何给定的spoti py 方法需要哪些用户级范围,这将有所帮助。但是,在开始为spotify编写客户端代码之前,理解scopes是一个好主意。例如:"播放列表 - 读取 - 私有" user_playlists是必需的,而不是" user-library-read",这在spoti py 文档中没有明确说明,所以你需要查看官方的spotify web api文档,并了解spoti py 方法将(可能)需要的范围。