关于appengine

时间:2016-11-14 05:35:25

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

通常情况下,客户更改了我们用于发送电子邮件的G Suite电子邮件密码(在Java @ AppEngine上)。该令牌已按预期被撤销,我们设法让所有工作都在DEV和UAT环境中工作,但PROD由于某种原因仍然得到臭名昭着的“无效授权”。我想知道数据存储区中是否存在一些原始Credential的缓存? 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)

1 个答案:

答案 0 :(得分:0)

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

  1. 暂停队列以避免" old"令牌在尝试重新发送电子邮件时反复缓存
  2. 从数据存储中删除存储的凭据
  3. 刷新memcache
  4. 重新配置您的应用以授权其访问您的Gmail(实质上是将新凭据发送到您的数据存储区)
  5. 恢复队列并享受