如何使用python中的刷新令牌刷新google中的访问令牌?我随身携带刷新令牌、客户端id和客户端机密
我已经尝试使用以下代码来生成访问令牌(过期后)
params = {
"grant_type": "refresh_token",
"client_id": client_id,
"client_secret": client_secret,
"refresh_token": refresh_token
}
authorization_url = "https://www.googleapis.com/oauth2/v4/token"
r = requests.post(authorization_url, data=params)
print(r.text)
if r.ok:
return r.json()['access_token']
else:
return None
我得到了一个错误的回应如下:
{
"error": "invalid_grant",
"error_description": "Bad Request"
}
但我需要生成访问令牌。
这是它不起作用的三个主要原因。我不是Python开发人员,所以不能测试你的代码,对不起。
将parms作为字符串发送
检查你的parm,确保它们是以&。
Post https://accounts.google.com/o/oauth2/token
client_id={ClientId}&client_secret={ClientSecret}&refresh_token=1/ffYmfI0sjR54Ft9oupubLzrJhD1hZS5tWQcyAvNECCA&grant_type=refresh_token
内容类型标题
此外,我认为您需要将内容类型标头设置为类似application/x-www-form-urlencoded
的内容。
更改终点
如果这不起作用
也尝试使用https://accounts.google.com/o/oauth2/token
而不是https://www.googleapis.com/oauth2/v4/token
我记得其中一个或另一个有时会出现问题