当前位置: 首页 > 知识库问答 >
问题:

Spotify OAuth 2.0回调python

孟茂学
2023-03-14

我按照spotify留档通过WEB API进行身份验证……使用下面的代码,我可以获得访问授权

import requests

endpoint_auth = 'https://accounts.spotify.com/authorize'
redirect_uri = 'http://localhost:8888/spotify/index.html'
client_id = '1234567890'
scope = "playlist-modify-private"

params_auth = {
        "response_type": "code",
        "client_id": client_id,
        "scope": scope,
        "redirect_uri": redirect_uri,
}

response_auth = requests.get(url=endpoint_auth, params=params_auth)
print(response_auth.status_code)
print(response_auth.text)

第一次打印是所有确定的响应200第二次打印给我的网页内容登录html如果我保存的内容在一个文件html和打开文件给一个错误,但如果我组成的网址路径,并启动它从浏览器像"https://accounts.spotify.com/authorize?响应类型=代码

我的问题是:有可能在我发出请求后读取url回调,就像我打印response_auth一样。文本打印带有参数代码的回调url?

共有1个答案

涂泰平
2023-03-14

您可以使用管理它的requests_oauthlib库,参见https://requests-oauthlib.readthedocs.io/en/latest/examples/spotify.html

#First set the client_id/client_secret/redirect_uri
#authorization_base_url, token_url & scope

from requests_oauthlib import OAuth2Session
spotify = OAuth2Session(client_id, scope=scope, redirect_uri=redirect_uri)

# Redirect user to Spotify for authorization
authorization_url, state = spotify.authorization_url(authorization_base_url)
print('Please go here and authorize: ', authorization_url)

# Get the authorization verifier code from the callback url
redirect_response = input('\n\nPaste the full redirect URL here: ')
from requests.auth import HTTPBasicAuth
auth = HTTPBasicAuth(client_id, client_secret)

# Fetch the access token
token = spotify.fetch_token(token_url, auth=auth,
authorization_response=redirect_response)
print(token)

# Fetch a protected resource, i.e. user profile
r = spotify.get('https://api.spotify.com/v1/me')
print(r.content)
 类似资料:
  • 问题内容: 如何从作为Tkinter回调执行的函数中获取返回的对象? 显然,这是一个简化的示例。实际上,按钮调用的函数将返回对象,我希望将这些对象附加到将保留在主Python名称空间中的对象列表中,以进行进一步的操作。 无论如何,在这里用户可以使用GUI选择该函数的自变量,然后按下将执行该函数的按钮。但是,该函数的返回值似乎注定会丢失给以太,因为回调函数将不接受返回值。在不使用丑陋的定义的情况下可

  • 问题: 我正在尝试为Wordpress插件注册自定义endpoint。我面临的问题是,当我调用add_action('rest_api_init',回调)时,回调函数没有被调用。在该回调函数中存在“register_rest_route()”方法,而该方法又未被调用,我无法注册任何自定义终结点。 < li >我正在使用docker进行开发 < li >没有抛出任何错误 代码: 问题: 代码到达“v

  • 我正在分析android上的改型,并有一个关于回调与不使用它们的问题。我的印象是,回调只用于客户机可能希望的成功和失败响应。否则我会省略它。下面是一个没有回调的改型接口示例: 下面是一个带有回调的示例(我希望我是正确的): 我对两件事感到困惑:

  • 问题内容: 例如我有一个功能: 我怎样才能返回AJAX后得到的? 问题答案: 因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。 最好的选择是将自己的回调传递给f1 然后,您将像这样致电:

  • 问题内容: 我想告诉hibernate在我的数据库中插入新行时向我发出回调通知(此行是由另一个系统/应用程序插入的。) 我正在使用mysql集群,并在集群内复制数据库。一旦某些数据库被更改,则必须将此更改通知其他系统。 Hibernate是否支持这种功能?我假设我必须在数据库层上具有某种触发器或过程。 问题答案: 你可以注册拦截器来监视进行的操作 您的 应用程序。但没有其他修改AFAIK。我能想到

  • 我看了十几篇文章和答案...都没用。 这个简单的代码有什么问题,我在这里错过了什么。尝试过的回调都不起作用。 和html 注:本地wamp 编辑:也在远程服务器上测试-剥离文件以防止任何交互-相同的结果

  • hook.js 了解pre和post的差别 我们了解了crud是数据库的基本操作,可是你有想过么?当创建之前需要完成一些操作怎么弄呢?创建完成之后如果需要完成日志类操作呢? 当然我们可以 a() b() c() 其实如果是明确的生命周期,我们其实可以这样 pre_b() b() post_b() 如果这个生命周期类似于模板模式,实现了就起作用,没有实现就走默认行为,是不会非常好呢?在mongo

  • 回调是一种机制,通过该机制可以拦截企业bean的生命周期。 EJB 3.0规范已指定了为其创建回调处理程序方法的回调。 EJB容器调用这些回调。 我们可以在EJB类本身或单独的类中定义回调方法。 EJB 3.0为回调提供了许多注释。 以下是无状态bean的回调注释列表 - 注解 描述 @PostConstruct 第一次创建bean时调用。 @PreDestroy 从bean池中删除bean或将其