我遇到了Google OAuth的单个用户刷新工作流程的问题。我正确地确定了离线访问并存储了它。每隔60分钟,在需要时,我会检索一个新的access_token。代码没有改变,但奇怪的是,当他第一次完成授权过程时,它工作了大约3天。然后我们运行了这个问题,所以我让他撤销访问权限并再次通过授权。这只持续了3天。
client_id ="xxxxx.apps.googleusercontent.com"
client_secret ="yyyyyyyy"
refresh_token ="zzzzzzzz"
response = oauth2a.RefreshToken(client_id,client_secret,refresh_token)
def RefreshToken(client_id, client_secret, refresh_token):
params = {}
params['client_id'] = client_id
params['client_secret'] = client_secret
params['refresh_token'] = refresh_token
params['grant_type'] = 'refresh_token'
request_url = AccountsUrl('o/oauth2/token')
response = urllib.urlopen(request_url, urllib.urlencode(params)).read()
return json.loads(response)
回复始终是{u'错误':u' invalid_grant'}。我曾尝试在三台不同的机器上进行此操作,因此NTP时间同步也不是问题。所有其他用户的刷新工作正常。我也从不再要求刷新,所以我知道我没有遇到25个refresh_token限制。这看起来像是gmail方面的一个错误,有什么方法可以继续尝试解决这个问题吗?