【问题标题】:Why can't I grant authorization to my Spotify app?为什么我不能授权我的 Spotify 应用程序?
【发布时间】:2020-09-02 19:21:47
【问题描述】:

我正在使用 spotipy 库将歌曲添加到播放列表中,但在尝试使用“playlist-modify-private”范围时不断出错。尝试获得授权时,Web 浏览器打开,我允许应用程序访问我的 spotify 帐户,然后我立即遇到错误屏幕。重新运行应用程序只会让我直接进入错误屏幕。我没有收到错误代码或任何东西,所以我不知道为什么会这样。

self.scope = 'playlist-modify-private'
self.redirect_uri = 'localhost:8888/callback'
self.auth = util.prompt_for_user_token(username=self.username,
                                                scope=self.scope,
                                                client_id=self.client_id,
                                                client_secret=self.client_secret,
                                                redirect_uri=self.redirect_uri)

我看到一篇帖子说,对于这个范围,我应该使用 util 模块进行身份验证,但我没有运气。最初我使用的是 auth SpotifyClientCredentials 对象并且能够完成大部分项目,但我无法修改播放列表,因为它不占用范围。如果有人可以提供任何意见,我会不知所措。

【问题讨论】:

    标签: python spotify spotipy


    【解决方案1】:

    试试这个:

    首先在您的环境中设置以下环境变量。

    SPOTIPY_CLIENT_ID="<your_client_id>"
    SPOTIPY_CLIENT_SECRET="<your_client_secret>"
    SPOTIPY_REDIRECT_URI="http://127.0.0.1:8888/callback"
    SPOTIPY_CLIENT_USERNAME="<your_username>"
    

    然后运行以下命令(我使用dotenv 加载上面的变量)查看文档here

    import os
    import spotipy
    from spotipy.oauth2 import SpotifyOAuth
    from dotenv import load_dotenv
    load_dotenv()  # Load your environment variables from a .env file
    
    spotify_user = os.environ.get("SPOTIPY_CLIENT_USERNAME")
    spotify_scope = "playlist-modify-private"
    oauth = SpotifyOAuth(username=spotify_user, scope=spotify_scope)
    user_token = oauth.get_access_token(as_dict=False)
    

    这会将您带到您的redirect_uri 并生成一个包含所有所需信息(令牌、刷新令牌等)的.cache-&lt;your_username&gt; 文件

    然后你创建你的 spotify 客户端:

    spotify = spotipy.Spotify(auth=user_token)
    

    这将自动获取您的令牌或在需要时获取刷新令牌,因此您不必担心这一点。 然后你就可以修改你的播放列表了:

    spotify.user_playlist_add_tracks(
        user=os.environ.get("SPOTIPY_CLIENT_USERNAME"),
        playlist_id="<your_playlist_uri>",
        tracks=["<track_uri>"])
    

    这里是 spotipy 库使用的环境变量的文档参考:https://spotipy.readthedocs.io/en/2.15.0/?highlight=environment%20variables#quick-start

    【讨论】:

    • 进行这些更改后,我仍然遇到同样的问题。当我登录到 spotify 时,我只是得到一个错误页面,应用程序要求我输入重定向到的 URL。我不太确定从这里做什么,因为 spotify 没有给我任何错误指示。它只是有一个返回文档的链接
    • 您能粘贴浏览器上显示的错误信息吗?
    • 这只是一个白色的空白页面页面,表示存在错误并显示返回文档的链接。但没有错误代码或任何东西。
    • 我想当你运行最后一行user_token = oauth.get_access_token(as_dict=False) 时会发生这种情况,对吗?还是会在其他时间发生?
    猜你喜欢
    • 1970-01-01
    • 2018-06-14
    • 2014-05-24
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多