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.pyuser_starred_playlist.py 时,浏览器会启动,我会被定向到Spotify 登录页面。登录后,我在浏览器中收到一个 Spotify 错误,它只显示:“糟糕!出了点问题。”该脚本询问我被重定向到的 URL,但同时输入登录页面的 URL 和错误页面的 URL(显然)会在终端中触发错误:spotipy.oauth2.SpotifyOauthError: Bad Request

起初我使用与 Facebook 相关的 Spotify 帐户,并在出现提示时通过 Facebook 登录 Spotify,所以我认为这可能是个问题。然而,即使在创建一个新的电子邮件专用 Spotify 帐户并在这个新的电子邮件专用用户名上运行脚本后,我也得到了相同的结果。

我还尝试在我的 Spotify 开发者帐户中注册一个新应用,并在 examples/util.py 中使用它的 CLIENT_IDCLIENT_SECRETREDIRECT_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_idclient_secretredirect_uri 作为util.prompt_for_user_token 中的agruments 来实现这一点。我必须复制并粘贴包含代码的整个 URL。我根本没有惹util.py

【讨论】:

考虑合并您已链接到的内容的关键元素,以便您的答案独立。

以上是关于Spotipy(Spotify 的 Web API Python 包装器)示例失败的主要内容,如果未能解决你的问题,请参考以下文章

如何使用客户端ID和密码访问spotify的web api?

Spotify API 从名称中查找艺术家 ID?

如何使用 Spotipy 获取 Spotify 的曲目时长

使用 Spotipy 设置 Spotify 凭据

我该如何处理 Django 中的 spotify api 身份验证重定向 uri?

获得使用 Python3 的 spotipy 修改 Spotify 播放列表的授权