获得使用 Python3 的 spotipy 修改 Spotify 播放列表的授权
Posted
技术标签:
【中文标题】获得使用 Python3 的 spotipy 修改 Spotify 播放列表的授权【英文标题】:Gaining authorization to modify Spotify playlists using spotipy for Python3 【发布时间】:2018-11-15 12:08:14 【问题描述】:我目前正在尝试使用 python3 模块 spotipy 来访问和编辑我的个人 Spotify 高级帐户。我通过直接输入必要的参数(用户名、客户端 ID、秘密 ID、范围和重定向 uri),使用 util.prompt_for_user_token 方法遵循了 https://github.com/plamere/spotipy/blob/master/docs/index.rst 上的教程。到目前为止,一切似乎都很好。我的代码(出于安全原因,填写用户名、客户端 ID 和客户端密码):code
它会打开我的默认网络浏览器并将我重定向到包含代码的重定向 URL。此时,我复制并粘贴重定向 URL(根据提示)并按 Enter。它返回以下错误:
Error
对于这个特定示例,我的重定向 uri 是“http://google.com/”。但是,我尝试了多个重定向 uri,但它们似乎都对我产生了相同的错误。 (是的,我确实将我的重定向 uri 设置为我的应用程序的空白)。我花了几个小时试图通过查看在线教程、尝试不同的重定向 url、更改我的代码来解决这个问题,但还没有取得任何进展。我希望我只是在这里忽略了一个简单的错误!非常感谢任何有关如何解决此问题的反馈!
如果重要的话:我正在使用 IDE PyCharm。
【问题讨论】:
很难说它可能是什么问题,一些故障排除点是 - 检查一切看起来像你在 Spotify 呈现给你的 OAuth 批准页面的 URL 中所期望的那样,你的 client_id 和秘密匹配您的开发者帐户,相同范围,删除 .cache-我必须使用两种不同的解决方案来处理 redirect_uri 问题,具体取决于我使用的 IDE。对于 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 与您当时计划使用的内容相匹配。
【讨论】:
【参考方案2】:我认为这是您的重定向 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” .
【讨论】:
好的,我发现了问题!原来重定向链接中没有“&”符号。我在链接末尾添加了“&”,一切顺利。不知道他为什么会这样,但我很高兴我让它工作了。感谢您的帮助,我真的很感激!以上是关于获得使用 Python3 的 spotipy 修改 Spotify 播放列表的授权的主要内容,如果未能解决你的问题,请参考以下文章