【问题标题】:Google Plus API - KeyinvalidGoogle Plus API - 密钥无效
【发布时间】:2014-10-23 22:58:48
【问题描述】:

我正在尝试使用 javascript sdk 进行 oauth 登录并访问 google plus api。这里的代码基本相同:https://developers.google.com/api-client-library/javascript/features/authentication

在我的萤火虫控制台中,这是将 api 请求发送到的 url: https://content.googleapis.com/discovery/v1/apis/plus/v1/rest?fields=servicePath%2Cresources%2Cparameters%2Cmethods&pp=0&key={key}

这是返回的错误: {"error":{"errors":[{"domain":"usageLimits","re​​ason":"keyInvalid","message":"Bad Request"}],"code":400,"message":"错误请求"}}

我有: 1. 将 Google Plus Api 添加到我的项目中 2. 创建 oauth 凭据 3. 设置我的同意屏幕

但是,我仍然收到错误消息。

【问题讨论】:

  • {key} 是您在请求中实际看到的吗?或者你是否用这个问题替换了你的实际密钥?
  • 我替换了这个问题的关键

标签: javascript api google-api google-plus google-plus-one


【解决方案1】:

原因是您在请求中定义了密钥。如发现 API 文档 (https://developers.google.com/discovery/v1/getting_started#before_starting) 中所述:

"APIs Discovery Service 只提供公共方法 需要认证。此外,与您提出的要求不同的是 许多其他 Google API,您向 Discovery Service 发出的请求 API 不应包含 API 密钥。如果您确实提供了密钥,则 请求将失败。此行为有助于确保您不会 在分发工具时意外泄露了您的 API 密钥 基于 Google API 发现服务。”

因此,您可以通过从请求中完全删除密钥来解决问题。

如果您使用 Google 的 javascript 客户端执行此操作,并且在加载更多 API 时出现错误,您必须先取消设置密钥:

gapi.client.setApiKey( null );          
gapi.client.load( "plus", "v1", function( apiresponse ) { ... } );

如果稍后其他功能需要该密钥,则必须重新设置。

为了避免不断地设置和取消设置密钥,我在认证之前加载了所有需要的API,然后设置了API密钥,这样就不会再出现问题了。

【讨论】:

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