【问题标题】:Google Calendar API- API key is no longer valid without reason (400)Google Calendar API-API 密钥无故不再有效 (400)
【发布时间】:2020-11-02 20:37:15
【问题描述】:

我有一个处理 API 多年的应用程序 (php)。 然而几周前它开始偶尔给出错误:

(400) API 密钥无效。请传递有效的 API 密钥。

最终错误是连续的并停止响应。

我把它和Google Calendar API - no longer authorized for reads?联系起来了

在几天不活动后,应用程序再次运行了几天,但模式再次重复:

它越来越频繁地给出错误,直到它停止工作。

已编辑:

该应用程序可以在以下位置查看:

http://intraneteina.unizar.es/intraneteina/index.php?r=calendarioGoo/index

当从下拉列表中选择任何选项时,应用程序会从谷歌日历中读取信息并将其显示为 html。

它已经工作了多年,并且没有触及代码,现在它给出了描述的 API 错误密钥无效。

【问题讨论】:

  • 您可能需要联系 API 的开发人员以了解其失败的原因。
  • 请编辑您的问题并发布您的代码。
  • 您链接的帖子引用了几天前修复的错误,因此您可能仍然遇到它。你在用 API 做什么?你有重现的步骤吗?

标签: php oauth-2.0 google-calendar-api


【解决方案1】:

我也遇到过类似的问题。我最终找到了一些文档,该文档说除非您通过服务帐户运行它,否则应用程序允许的“活动”授权令牌限制为 50(或可能 100)。通常,一旦达到限制,Google 就会将授权从它维护的“活动列表”的末尾删除,而您不知道发生了这种情况。如果您依赖访问令牌的到期并且在您认为需要之前不生成刷新令牌,那么这是一个问题 - 即当您生成/刷新您的访问令牌时,您会记录到期日期并且仅在您刷新它时系统告诉您您的令牌已过期。

因为 Google 可能在后台禁用了该令牌(将其从活动列表中删除),而您没有意识到这一点,您尝试使用尚未过期的令牌 - 结果是通常没有任何指示的无信息错误消息发生了什么。在我们的案例中,在短期内设置服务帐户太难了(为授权过程实施 RSA256),所以我们通过忽略记录的到期时间戳并在每次调用 API 时请求刷新令牌来解决这个问题。很抱歉,我无法将您链接到文档,但我相信我是通过另一个 S.O. 的答案找到的。发帖。

【讨论】:

猜你喜欢
  • 2020-10-13
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-03
相关资源
最近更新 更多