4

我通过克隆并安装了 Paul Lamere 的用于 Spotify Web API 的 Python 包装器,python setup.py install我似乎无法正确运行某些示例。

具体来说,当我尝试运行user_playlists_contents.pyor时user_starred_playlist.py,会启动一个浏览器并将我定向到 Spotify 登录页面。登录后,我在浏览器中收到一个 Spotify 错误,它只显示:“糟糕!出了点问题。” 该脚本询问我被重定向到的 URL,但同时输入登录页面的 URL 和错误页面的 URL(显然)会在终端中触发错误:spotipy.oauth2.SpotifyOauthError: Bad Request

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

我还尝试在我的 Spotify 开发者帐户中注册一个新应用程序并使用它的CLIENT_IDCLIENT_SECRETREDIRECT_URIexamples/util.py但这似乎没有做任何事情。无论如何,修改似乎不太可能examples/util.py

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

这两个脚本都取决于prompt_for_user_token()中定义的脚本examples/util.py,并且似乎是出现问题的地方。

我究竟做错了什么?我是否错过了一些非常明显的事情?提前致谢。

4

2 回答 2

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 环境变量。您可以通过在Spotify 开发者网站的“我的应用程序”部分创建应用程序来获得这些值

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

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

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

于 2014-06-30T09:22:33.470 回答
1

我有一个类似的问题,至少找到了一个解决方案。见这里。我通过将client_id, client_secret,redirect_uri作为 agruments传递给util.prompt_for_user_token. 我不得不复制并粘贴整个URL,包括代码。我一点都没有乱来util.py

于 2015-10-31T21:51:48.517 回答