【问题标题】:Timeouts refreshing Google oauth token in GAE app在 GAE 应用程序中刷新 Google oauth 令牌超时
【发布时间】:2013-06-07 20:33:38
【问题描述】:

我有一个 GAE 应用,它会定期向 G+ 请求用户的活动。我正在使用google oauth client api for java

这几个月来一直运行良好,几乎没有代码更改(如果需要,我会发布代码,所有代码都直接取自 oauth 客户端项目示例,使用 GoogleAuthorizationCodeFlow)。

但是,几天前情况发生了变化。现在,在 GAE 实例中,我在令牌刷新期间得到了这个异常:

java.net.SocketTimeoutException: Timeout while fetching URL: https://accounts.google.com/o/oauth2/token
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.convertApplicationException(URLFetchServiceImpl.java:141)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:43)
at com.google.api.client.extensions.appengine.http.UrlFetchRequest.execute(UrlFetchRequest.java:77)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1009)
at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:299)
at com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:323)
at com.google.api.client.auth.oauth2.Credential.executeRefreshToken(Credential.java:586)
at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:505)
at com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:266)

现在这在我的本地机器上仍然可以正常工作。 GAE 仪表板或此应用程序的 Google APIS 控制台上没有报告配额问题。 Google API 控制台项目启用了计费,但 GAE 应用未启用。

我注意到在一个 python 应用程序中报告了一个类似的问题 here,但到目前为止没有任何回应。

这种情况已经持续了几天 - 该应用每小时为一百左右不同的用户尝试一次。如果我将应用程序限制为仅对单个用户执行此操作,它仍然会发生。

【问题讨论】:

  • 补充一下,我有另一个使用 Google Prediction API 的应用程序,它是一个不同的 url (googleapis.com/prediction/v1.5/trainedmodels/...),并且遇到了同样的超时问题。所以它闻起来像是基础设施,而且范围相当广泛。
  • 这两个应用程序今天早上已经开始正常工作了。假设 Google 没有说明应用程序关闭超过一天的原因,我将立即关闭它。
  • 这个问题今天6月11号又出现了!!
  • 是的,这仍然发生在我身上。从上周三开始。他们通常非常擅长发布停机时间,groups.google.com/forum/?fromgroups#!topic/…,但没有意识到 GAE 可以停机这么长时间。

标签: google-app-engine google-api google-plus


【解决方案1】:

这是我注意到的: 该服务在晚上 10:30 左右连续两天开始为我工作,然后在第二天早上 8 点左右再次停止工作(本周末周六和周日:2013 年 6 月 8 日至 9 日)。真的看起来像高负载问题。 希望 Google 尽快修复它。

我绝对没有对应用引擎服务器上的代码进行任何更改。它刚开始工作,然后停止工作。

附:此外,每次我尝试使用 Google plus 登录时,服务器收到 SocketTimeoutException 似乎总是需要大约 40 秒。

P.P.S.是的,它适用于我的本地 Google App Engine 实例。

【讨论】:

【解决方案2】:

我们仍然遇到同样的问题:在格林威治标准时间每天下午 1 点至下午 2 点左右,OAuth2 刷新令牌方法开始失败并出现超时错误,时间为 10-14 点。在那之后它会再次工作。

此处发布了类似的问题:https://code.google.com/p/google-glass-api/issues/detail?id=99

洛伦佐

更新:看来问题已经解决了。 见https://groups.google.com/forum/?fromgroups#!topic/google-appengine-downtime-notify/TqKVL9TNq2A

【讨论】:

【解决方案3】:

我认为可能是由于这个问题:

Google App Engine URL Fetch 服务对 Google 的问题 帐户身份验证端点已于下午 5:15 解决 美国/太平洋地区,2013 年 6 月 7 日。对于给您带来的不便,我们深表歉意 感谢您的耐心和持续的支持。请放心吧 系统可靠性是 Google 的重中之重,我们正在 不断改进以使我们的系统更好。

https://groups.google.com/forum/?fromgroups#!topic/google-appengine-downtime-notify/TqKVL9TNq2A

【讨论】:

  • 我也遇到过这个问题!似乎他们已经发布了对该线程的更新,说他们正在“调查”。
【解决方案4】:

在运行我的应用程序 anyCloud 和 staging.anycloud.co 的两个应用程序引擎实例上,此超时问题一直发生。我无法获得访问令牌或刷新现有的令牌并与其他海报一致,相同的代码在 localhost 开发环境中运行时工作正常。

【讨论】:

    猜你喜欢
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2018-07-24
    相关资源
    最近更新 更多