我正在进行与以下线程相同的API调用:
我知道代码,服务帐户电子邮件和证书有效,因为它可以在一台机器上运行。
但是,当我将代码和证书文件复制到另一台计算机时,它会因TokenResponseExpection -invalid_grant而失败。
我已经检查过两台机器上的时间是否同步,而且我有正确的证书/代码还有什么我可以检查调试这个?
答案 0 :(得分:0)
机器的窗口时间是否合适? Google API使用可能导致此错误的授权令牌的时间戳
答案 1 :(得分:0)
我想没人知道为什么会这样,我找不到任何答案。 我在这里做了我自己的调查:TokenResponseException - Error:"invalid_grant", Description:"", Uri:"" 在这里:How to acquire a new Access token using Refresh token in Google OAuth 2.0 in .NET?
目前还不知道为什么会这样。 我虽然它与访问令牌过期有关,但我不确定,我无法弄清楚,AFAIU凭据令牌必须在其访问带有包含凭证令牌的Google API时自动到期时获取新的访问令牌已过期的访问令牌和刷新令牌(已在第一次收到并保存)。当然,您可以请求的访问权限数量有限制 - 25,或者您获得“无效授权:已超出刷新令牌限制(默认为25)。”
Token是一个包含2个其他对象的对象:AccessToken和RefreshToken。如果将RefreshToken设置为在身份验证时收到的值,则如果AccessToken在1小时后过期,则当您调用Google API时,它应使用RefreshToken获取新的AccessToken。它是如何做到的 - 不知道,它应该是Google API的内部隐藏实现。
或者我可能弄错了:)