编程语言
首页 > 编程语言> > Spotipy(Spotify的Web API Python包装器)示例失败

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

作者:互联网

我通过python setup.py安装克隆并安装了Paul Lamere的Python wrapper for the Spotify Web API,但我似乎无法正确运行一些示例.

具体来说,当我尝试运行user_playlists_contents.pyuser_starred_playlist.py时,会启动浏览器并将其定向到Spotify登录页面.登录后,我在浏览器中收到一个Spotify错误,该错误只说:“哎呀!出了问题.”该脚本要求我重定向到的URL,但是同时输入登录页面的URL和错误页面的URL(显然)会在终端内触发错误:spotipy.oauth2.SpotifyOauthError:错误请求

起初我使用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(),而且似乎是出错的地方.

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

解决方法:

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 SiteMy Applications部分创建应用来获得这些值

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

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

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

标签:python,oauth-2-0,spotify,spotipy
来源: https://codeday.me/bug/20190624/1278245.html