我正在使用一个图形框架构建一个集成组件,该框架具有预先构建的OAuth2连接器。该框架需要以下OAuth v2字段:
- 授权类型
- 范围
- 认证服务器URL
- 客户端ID
- 客户端密钥
- 访问令牌
- 刷新令牌
我需要从Google Analytics API获取数据,因此我去了Google Dev Console (https://console.developers.google.com/project/927890000889/apiui/credential)。我生成了一个“网页应用程序的客户端ID”。通过这个对象的参数,我能够填写上面的一些参数:
- 授权类型: 'authorisation_code'
- 客户端ID: 'RANDOMCHARSam5o37nsiu730d.apps.googleusercontent.com'
- 客户端密钥: 'RANDOMCHARSiSwBA5OH5qYLUa'
然后使用Google OAuth Playground (https://developers.google.com/oauthplayground),我可以填写缺少的部分:
- 范围: 'https://www.googleapis.com/oauth/analytics'
- 认证服务器URL: 'https://accounts.google.com/o/oauth2/auth'
- 访问令牌: 'RANDOMCHARSQAQv4HRF5-JsQEzUS61lj2YremyCocv0PQ4-agpzJe'
- 刷新令牌: 'RANDOMCHARSLPJnL4FPaDc2KP6V8kCzjjHO2Kj4Np_3X0'
一切正常,我被授权访问并从Google Analytics获得数据,但只有一段时间,几分钟后如果我重试,我会收到授权失败错误。
我认为问题与访问令牌的过期相关,但我不知道如何解决它。值得一提的是,这个活动是批处理的(没有人工干预),所以没有人可以请求新的访问令牌。集成框架不可扩展(我不能编写代码来更新代码),所以我相信有一种方法可以获得永不过期的访问令牌或其他实现相同结果的机制。总之,我不确定我从一开始就正确地处理了要求(Web应用程序的客户端ID)。
任何帮助都非常感谢, 乔瓦尼