使用刷新令牌刷新google访问令牌



如何使用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我记得其中一个或另一个有时会出现问题

最新更新