【问题标题】:gmail oauth2 invalid grant on appengineappengine上的gmail oauth2无效授权
【发布时间】:2017-03-27 17:14:07
【问题描述】:

通常情况下,客户更改了我们用于发送电子邮件的 G Suite 电子邮件密码(在 Java@AppEngine 上)。令牌已按预期被撤销,我们设法让一切都在 DEV 和 UAT 环境中运行,但是 PROD 出于某种原因仍然获得了臭名昭著的“无效授权”。我想知道数据存储中是否有一些缓存可以保存原始凭证? Stackdriver 不允许评估方法调用,因此看不到里面的内容。我们怀疑它与缓存有关,但重新启动 GAE 实例(通过重新部署)并没有解决问题。欢迎提出任何建议!

这有点来自日志:

原因:com.google.api.client.auth.oauth2.TokenResponseException: 400 { “错误”:“invalid_grant” } 在 com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:105) 在 com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287) 在 com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:307) 在 com.google.api.client.auth.oauth2.Credential.executeRefreshToken(Credential.java:570) 在 com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:489) 在 com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:217) 在 com.google.api.client.http.HttpRequest.execute(HttpRequest.java:859) 在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) 在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) 在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)

【问题讨论】:

    标签: google-app-engine google-cloud-datastore gmail-api oauth2


    【解决方案1】:

    不确定这一次是如何运作的,但这个顺序似乎有效:

    1. 暂停队列以避免在尝试重新发送电子邮件时一次又一次地缓存“旧”令牌
    2. 从数据存储中删除存储的凭据
    3. 刷新内存缓存
    4. 重新配置您的应用以授权它访问您的 gmail(基本上是为您的数据存储区获取新凭据)
    5. 继续排队,尽情享受

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-05
      • 2021-06-15
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      相关资源
      最近更新 更多