Spotipy 尝试使用 oauth 进行验证

Posted

技术标签:

【中文标题】Spotipy 尝试使用 oauth 进行验证【英文标题】:Spotipy trying to verify with oauth 【发布时间】:2015-12-25 09:26:10 【问题描述】:

我一直在尝试使用 spotipy 进行验证以制作播放列表等。

import spotipy
import spotipy.util as util

class buildPlayList():
    def __init__(self,name):
        scope = 'playlist-modify-public'
        self.username=name
        token = util.prompt_for_user_token(self.username, scope,client_id='', client_secret='',redirect_uri='http://example.com/callback/')
        self.sp = spotipy.Spotify(auth=token)
        print self.sp.current_user()

    def make_and_build(self):
        pass
x=buildPlayList("myname")

我运行它然后得到这个:

 User authentication requires interaction with your
 web browser. Once you enter your credentials and
 give authorization, you will be redirected to
 a url.  Paste that url you were directed to to
 complete the authorization.

我转到 URL 时发现错误,我将其发布回命令行时出现错误。我不知道为什么这个库会这样做,所有其他库通常都使用用户名、密码、客户端 ID 和客户端密码。由于某种原因,这让你多走了一步。一些帮助将不胜感激。我正在使用所有正确的信息。我不确定这个重定向 url 是什么,也许是导致问题的原因?

【问题讨论】:

【参考方案1】:

关注link 获取您的客户端 ID、秘密和回调 uri。然后确保在prompt_for_user_token 调用中正确设置这些参数

由于某种原因,这让你多走了一步

额外步骤的原因是您通过 url 获得的响应包括代码和状态变量,这些变量又用于获取访问令牌。然后,您最终将 Spotify Web API 与这些令牌一起使用。如果你检查official authorization guide,你会更好地理解这个故事

【讨论】:

试过这个,然后我进入一个显示错误的页面,我将 URL 粘贴回去,它说请求错误。您是否必须拥有高级帐户才能访问 api 或其他东西? 不,我不知道。你设置了本地服务器吗?(localhost) 我不确定你的意思。为什么需要本地服务器?

以上是关于Spotipy 尝试使用 oauth 进行验证的主要内容,如果未能解决你的问题,请参考以下文章

(spotipy) 方法永远不会完成,因为它在 oauth 重定向 url 的视图中结束

尝试在 spotipy 中获取访问令牌时授权码无效

尝试通过 oauth 进行身份验证时访问被拒绝

当我或其他用户尝试使用 OAuth2 进行授权时,我不断收到需要验证我的应用程序的错误。那是啥意思?

使用RESTSHARP进行OAuth 2身份验证不起作用

spotifpy oauth 授权代码流程