我正在使用具有预构建OAuth2连接器的图形框架构建集成组件.此框架需要以下OAuth v2字段:
格兰特类型
范围
Auth服务器URL
客户ID
客户秘密
访问令牌
刷新令牌
我需要从Google AnalyticsAPI获取数据,因此我访问了Google Dev Console(https://console.developers.google.com/project/927890000889/apiui/credential).我生成了一个"Web应用程序的客户端ID".从这个对象的参数我能够填充上面的一些参数
授权类型:'authorisation_code'
客户ID:'RANDOMCHARSam5o37nsiu730d.apps.googleusercontent.com'
客户秘密:'RANDOMCHARSiSwBA5OH5qYLUa'
然后使用Google Oauth Playground(https://developers.google.com/oauthplayground),我能够填补缺失的位
范围:' https : //www.googleapis.com/oauth/analytics '
Auth服务器网址:' https : //accounts.google.com/o/oauth2/auth '
访问令牌:'RANDOMCHARSQAQv4HRF5-JsQEzUS61lj2YremyCocv0PQ4-agpzJe'
刷新令牌:'RANDOMCHARSLPJnL4FPaDc2KP6V8kCzjjHO2Kj4Np_3X0'
一切正常,我有权访问并从Google Analytics获取数据,但只是一段时间,几分钟后如果我重试我收到授权失败错误.我认为问题与访问令牌的到期有关,但我不知道如何解决这个问题.值得一提的是这个活动是批处理的(没有人工交互),所以没有人可以请求新的访问令牌.集成框架是不可扩展的(我不能编写代码来更新代码)所以我相信有一种方法可以获得永不过期的访问令牌或其他一些机制来实现相同的结果.
最重要的是,我不确定自开始以来我是否正确地接近了要求(Web应用程序的客户端ID).
Giovanni,非常感谢任何帮助
访问令牌通常在60分钟后过期.如果您有刷新令牌,则可以使用刷新令牌获取新的(有效)访问令牌.
本文档介绍了如何执行此操作:https:
//developers.google.com/accounts/docs/OAuth2WebServer#refresh
要回答你的首要问题,是的,你正在接近一切.您需要做的就是通过刷新来处理访问令牌已过期的情况.此外,当您最初请求访问令牌时,响应应该告诉您它的有效时间,因此您应该只在该令牌过期时刷新该令牌.