【问题标题】:Intermittent "The API developer key is invalid" error间歇性“API 开发人员密钥无效”错误
【发布时间】:2020-07-10 21:22:45
【问题描述】:

我们有一个实时应用程序间歇性地给出“API 开发人员密钥无效”。

正常流程:

  1. 用户点击“从 Google 云端硬盘导入”
  2. 获取 OAuth 屏幕
  3. 选择一个用户(如果有多个)
  4. 使用 Google 选择器提示
  5. 选择一个文件
  6. 文件被导入

但对于某些用户,在第 ​​3 点中选择用户后(如果只有一个用户,则自动选择),选择器对话框不会打开,但会提示“为了从您的在线存储中选择一个项目,请登录”黑色背景上带有红色登录按钮的消息。 (见截图)

Sign in screen

然后用户点击“登录”后,收到“API 开发者密钥无效”错误信息,流程停止。 (再看截图)

API key error screen

对于大多数用户来说,一切正常。似乎是每个用户的问题,因为我们有一个受影响的用户有多个 gmail 地址登录到 Chrome,这个问题发生在一个电子邮件地址上,但不会发生在另一个电子邮件地址上。

有什么想法吗?

【问题讨论】:

  • Are the answers over here对你有什么帮助吗?
  • 不,API 显然已启用(否则每个人都会失败)并且回调看起来与该示例中的完全一样。不过谢谢!
  • 对于这些用户,应用程序的身份验证流程是否在隐身模式下工作?
  • 是的,我让一个受影响的用户来测试它。他们可以通过 Google Auth 登录到应用程序,然后当他们尝试进行导入时,他们会看到相同的对话框和错误。不确定它是否有帮助,但如果我从客户端代码中删除 setDeveloperKey() 调用,该 API 仍然适用于那些不受原始错误影响的用户,但那些受影响的用户会收到不同的错误:“功能您请求的当前不可用”
  • 当用户在 Chrome 中只有 一个 帐户登录时,是否还会发生这种情况?如果是这样,您是否可以从启用了 API 的项目中重新获取新密钥并尝试使用它?

标签: google-api google-drive-api google-picker


【解决方案1】:

经过长时间的搜索,我找到了一种解决方法。我不得不用gapi.auth2.authorize 替换gapi.auth2.initgapi.auth2. signIn 调用,它也开始对那些受影响的用户起作用。向谷歌提交了一份关于它的报告,但在撰写本文时,没有太多回复:https://github.com/google/google-api-javascript-client/issues/613

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多