我正在尝试使用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时,我看不到
的预期确认“当我不使用应用程序时执行这些操作”
相反,我看到的是:
此外,我正在为我的应用程序使用“Web应用程序的客户端ID”。
干杯!
答案 0 :(得分:3)
我对在这个问题上花了一整天感到高兴,但这是我的解决方案。
我revoked我从用户那里获得的应用程序,然后我删除了从我的数据库中存储的凭据。
我确信我已经做了第一步,但显然不是。
我的生命中有10个小时我不会回来。希望这对某人有用。