Spotipy(Spotify 的 Web API Python 包装器)示例失败
Posted
技术标签:
【中文标题】Spotipy(Spotify 的 Web API Python 包装器)示例失败【英文标题】:Spotipy (Spotify's Web API Python wrapper) examples failing 【发布时间】:2014-08-19 05:13:03 【问题描述】:我通过 python setup.py install
克隆并安装了 Paul Lamere 的 Python wrapper for the Spotify Web API,但我似乎无法正确运行某些示例。
具体来说,当我尝试运行user_playlists_contents.py
或user_starred_playlist.py
时,浏览器会启动,我会被定向到Spotify 登录页面。登录后,我在浏览器中收到一个 Spotify 错误,它只显示:“糟糕!出了点问题。”该脚本询问我被重定向到的 URL,但同时输入登录页面的 URL 和错误页面的 URL(显然)会在终端中触发错误:spotipy.oauth2.SpotifyOauthError: Bad Request
起初我使用与 Facebook 相关的 Spotify 帐户,并在出现提示时通过 Facebook 登录 Spotify,所以我认为这可能是个问题。然而,即使在创建一个新的电子邮件专用 Spotify 帐户并在这个新的电子邮件专用用户名上运行脚本后,我也得到了相同的结果。
我还尝试在我的 Spotify 开发者帐户中注册一个新应用,并在 examples/util.py
中使用它的 CLIENT_ID
、CLIENT_SECRET
和 REDIRECT_URI
,但这似乎没有任何作用。无论如何,修改examples/util.py
似乎不太可能。
认为这可能是浏览器问题,我还重置了我的浏览器 (Chrome),之后我尝试将 Safari 切换到默认浏览器,但也没有任何效果。
这两个脚本都依赖于在examples/util.py
中定义的prompt_for_user_token()
,似乎是出了问题的地方。
我做错了什么?我是否错过了一些非常明显的事情?提前致谢。
【问题讨论】:
我认为您应该在其 GitHub 项目中将此问题报告为问题,而不是使用 ***。这将通知项目的维护人员,并能够更好地帮助您。 @JMPerez 我可以做到。我首先尝试了 ***,因为我认为这是我做错了,而不是项目的错误。 【参考方案1】:prompt_for_user_token
方法如下:
def prompt_for_user_token(username, scope=None):
''' prompts the user to login if necessary and returns
the user token suitable for use with the spotipy.Spotify
constructor
'''
client_id = os.getenv('CLIENT_ID', 'YOUR_CLIENT_ID')
client_secret = os.getenv('CLIENT_SECRET', 'YOUR_CLIENT_SECRET')
redirect_uri = os.getenv('REDIRECT_URI', 'YOUR_REDIRECT_URI')
.
.
这要求您在执行示例之前设置 CLIENT_ID、CLIENT_SECRET 和 REDIRECT_URI 环境变量。您可以通过在Spotify Developer Site 的My Applications 部分创建应用程序来获得这些值
在Unix中,你可以在命令行中设置环境变量,如下:
export CLIENT_ID=yourclient
export CLIENT_SECRET=yoursecret
export REDIRECT_URI=your redirect uri
然后,您需要在浏览器上复制并粘贴您被重定向到的完整 url 以继续。
【讨论】:
【参考方案2】:我有一个类似的问题,并且至少找到了一个解决方案。见here。我通过将client_id
、client_secret
、redirect_uri
作为util.prompt_for_user_token
中的agruments 来实现这一点。我必须复制并粘贴包含代码的整个 URL。我根本没有惹util.py
。
【讨论】:
考虑合并您已链接到的内容的关键元素,以便您的答案独立。以上是关于Spotipy(Spotify 的 Web API Python 包装器)示例失败的主要内容,如果未能解决你的问题,请参考以下文章
如何使用客户端ID和密码访问spotify的web api?