我正在尝试为服务帐户获取 Google OAuth 2.0 访问令牌,但收到invalid_grant
错误消息。我已经检查了我的各种工件(私钥等)和时钟计时,但到目前为止还没有解决这个问题。
有一个可能相关的项目看起来很奇怪:谷歌的文档说
HTTPs POST 中需要三个参数,如下所示
接下来是一个包含两行的表,指定了两个参数(grant_type
和assertion
)。是否还需要第三个(我已经看到了也assertion_type
以某种方式使用的示例)?会不会是(某些)Google 工程师(或者真的是你的工程师)数不过三?:)
总结:合适的参数是什么?从谷歌当前的文档中似乎还不清楚。
更新:这里有一些进一步的信息:我不能使用谷歌 API 客户端库,因为我的应用程序需要的语言不是谷歌目前不支持的语言。因此,我必须实现创建和签署 JWT 等的逻辑,这通常是不鼓励的。我已经确认我的服务帐户工件是有序的:我可以将它们与用于 Java 的 Google API 客户端库一起使用来访问同一个日历(从我的目标平台之外的另一个平台,即)。特别是,我的“client_id”的形式是“...@developer.gserviceaccount.com”,我的密钥是 128 位 RSA 私钥,两者都是从Google APIs Dashboard获得的。