【发布时间】:2018-01-16 06:21:44
【问题描述】:
我正在尝试为 Buffer(社交媒体调度应用程序)授权 API。我按照这里的说明进行操作https://buffer.com/developers/api/oauth
授权的第一步,使用以下类型的请求将用户重定向到授权页面:
GET https://bufferapp.com/oauth2/authorize?
client_id=...&
redirect_uri=...&
response_type=code
一旦授权页面重定向到redirect_uri,授权码作为查询参数:
http://example.com/back?code=1/mWot20jTwojsd00jFlaaR45
然后在 POST 请求中使用该代码来获取访问令牌:
POST https://api.bufferapp.com/1/oauth2/token.json
POST Data
client_id=...&
client_secret=...&
redirect_uri=...&
code=...&
grant_type=authorization_code
但是,授权码的有效期为 30 秒。
当我手动进行授权,然后我收到一个带有 auth_code 的 POST 请求时,如下所示:
my_data = {
'client_id': my_client_id,
'client_secret': my_client_secret,
'redirect_uri': my_redirect_uri,
'code': auth_code,
'grant_type': 'authorization_code',
}
token = requests.post('https://api.bufferapp.com/1/oauth2/token.json', data=my_data)
我收到“无效授权”错误。
我查找了与其他 API 相关的错误(Buffer API 似乎没有被太多使用),其中一个原因可能是 auth_code 过期。鉴于保质期短,这不足为奇。
自动化授权位以避免 auth_code 过期的好方法是什么?
还是我在这里做错了什么?
非常感谢您的帮助
【问题讨论】:
标签: python api oauth-2.0 authorization