使用Google API的离线刷新令牌

时间:2013-08-29 03:19:15

标签: python google-app-engine google-api oauth2client

我正在尝试使用Google AnalyticsAPI,并且在用户离线时可以访问。我使用oauth2decorator_from_clientsecrets最初获取凭据(默认情况下应该请求脱机访问)。我可以在令牌到期之前按预期访问API 1小时。在此之后,我最终得到一个错误:

“AccessTokenRefreshError:invalid_grant”

我使用以下代码访问存储凭据的API:

credentials = StorageByKeyName(CredentialsModel, user_id, 'credentials').get()
http = httplib2.Http()
http = credentials.authorize(http)
analytics = build("analytics", "v3", http=http)
query = analytics.management().webproperties().list(accountId="123456").execute()

我怀疑这与未正确获得初始离线访问权限有关。当用户最初被定向到授权URL时,我看不到

的预期确认
  

“当我不使用应用程序时执行这些操作”

相反,我看到的是:

confirmation url

此外,我正在为我的应用程序使用“Web应用程序的客户端ID”。

干杯!

1 个答案:

答案 0 :(得分:3)

我对在这个问题上花了一整天感到高兴,但这是我的解决方案。

revoked我从用户那里获得的应用程序,然后我删除了从我的数据库中存储的凭据。

我确信我已经做了第一步,但显然不是。

我的生命中有10个小时我不会回来。希望这对某人有用。