2

我目前正在尝试使用 python3 模块 spotipy 来访问和编辑我的个人 Spotify 高级帐户。我已经按照https://github.com/plamere/spotipy/blob/master/docs/index.rst上的教程使用 util.prompt_for_user_token 方法直接输入必要的参数(用户名、客户端 ID、秘密 ID、范围并重定向uri)。到目前为止,一切似乎都很好。我的代码(出于安全原因,填写用户名、客户端 ID 和客户端密码):
代码

它会打开我的默认网络浏览器并将我重定向到我的重定向 url,其中包含代码。此时,我复制并粘贴重定向 URL(根据提示)并按 Enter。它返回以下错误:

错误

对于这个特定示例,我的重定向 uri 是“ http://google.com/ ”。但是,我尝试了多个重定向 uri,但它们似乎都对我产生了相同的错误。(是的,我确实将我的重定向 uri 设置为我的应用程序的空白)。我花了几个小时试图通过查看在线教程、尝试不同的重定向 url、更改我的代码来解决这个问题,但还没有取得任何进展。我希望我只是在这里忽略了一个简单的错误!非常感谢任何有关如何解决此问题的反馈!

如果重要的话:我正在使用 IDE PyCharm。

4

2 回答 2

1

根据我使用的 IDE,我必须使用两种不同的解决方案来处理 redirect_uri 问题。对于 Jupyter Lab/Notebook,我可以使用 localhost 作为 redirect_url

sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id="your_client_id", client_secret="your_client_secret", redirect_uri="https://localhost:8890/callback/", scope="user-library-read"))

对于 Google Colab,我必须使用可公开访问的网站。我认为“https://google.com/”应该可以,但我使用了我乐队的网站,所以我记得 redirect_uri 必须与您的 Spotify Develop 仪表板设置中的匹配。

sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id="your_client_id", client_secret="your_client_secret", redirect_uri="https://yourwebsite.com/", scope="user-library-read"))

我刚刚使用了我的乐队网站,因为它更容易让我记住。确保转到 Spotify 开发人员仪表板 ( https://developer.spotify.com/dashboard/applications ) 并将 redirect_uri 与您当时计划使用的内容相匹配。

于 2021-03-20T01:34:06.977 回答
0

我认为这是您的重定向 URL - 为我工作:

import os
import spotipy.util as util

# credentials
user = 'username'
desired_scope = 'playlist-modify-private'
id = os.environ.get('SPOT_CLIENT')
secret = os.environ.get('SPOT_SECRET')
uri = 'https://localhost'
token = util.prompt_for_user_token(username=user,
                                   scope=desired_scope,
                                   client_id=id,
                                   client_secret=secret,
                                   redirect_uri=uri)

我认为对于您的重定向 url,spotify 需要初始http(s)部分 - 不要忘记将其添加到您的 Spotify for Developers 应用程序的白名单中,否则您将获得“invalid-redirect-uri”。

于 2018-07-03T21:15:54.620 回答