我正按照https://developers.google.com/accounts/docs/OAuth2WebServer#refresh
上的说明尝试使用Google API刷新过期的令牌所以这是我的代码(python)
refresh_token = requests.post(
'https://accounts.google.com/o/oauth2/token',
headers={
'Content-Type': 'application/x-www-form-urlencoded',
},
data=json.dumps({
'client_id': APP_ID,
'client_secret': APP_SECRET,
'refresh_token': refresh_token,
'grant_type': 'refresh_token',
})
)
但是,我得到了回复:
Status code: 400
{
"error" : "invalid_request"
}
我做错了什么?
答案 0 :(得分:1)
您告诉谷歌服务器,当您的请求实际为json编码时,您的请求是表单编码的。如果你给它一个字典,请求会自动对你的数据进行格式编码,所以请尝试这样做:
refresh_token = requests.post(
'https://accounts.google.com/o/oauth2/token',
data={
'client_id': APP_ID,
'client_secret': APP_SECRET,
'refresh_token': refresh_token,
'grant_type': 'refresh_token',
}
)