Spotipy(Spotify的Web API Python包装器)示例失败

时间:2014-06-28 01:55:39

标签: python oauth-2.0 spotify spotipy

我通过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开发者帐户中注册一个新应用,并在CLIENT_ID中使用CLIENT_SECRETREDIRECT_URIexamples/util.py,但这并没有好像什么都做。似乎不太可能修改examples/util.py是必要的。

认为这可能是一个浏览器问题我也重置了我的浏览器(Chrome),之后我没有尝试将Safari切换到默认浏览器,但也没有做任何事情。

这两个脚本都依赖于examples/util.py中定义的prompt_for_user_token(),而且似乎出现了问题。

我做错了什么?我错过了一些痛苦明显的东西吗?提前谢谢。

2 个答案:

答案 0 :(得分:3)

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环境变量。您可以通过在My Applications

Spotify Developer Site部分创建应用来获取这些值

在Unix中,您可以在命令行中设置环境变量,如下所示:

export CLIENT_ID={yourclient}
export CLIENT_SECRET={yoursecret}
export REDIRECT_URI={your redirect uri}

然后,您需要复制并粘贴重定向到浏览器的完整URL以继续。

答案 1 :(得分:1)

我遇到了类似的问题,至少找到了解决方案。见here。我通过将client_idclient_secretredirect_uri作为util.prompt_for_user_token中的agruments传递来实现此目的。我不得不复制并粘贴整个 URL,包括代码。我根本没有弄util.py