Google Plus API-密钥无效



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

在我的firebug控制台中,这是将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","reason":"keyInvalid","message":"Bad Request"}],"code":400,"message":"坏请求"}}

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

然而,我仍然会出错。

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

"API发现服务只提供不需要身份验证。此外,与您向许多其他的谷歌API,你对发现服务的请求API不应包含API密钥。如果您提供了密钥请求将失败。这种行为有助于确保在分发以下工具时意外泄露了您的API密钥基于Google API发现服务。"

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

如果你使用谷歌的javascript客户端来做这件事,并且在加载更多API时发生错误,你必须首先取消设置密钥:

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

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

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

相关内容

  • 没有找到相关文章

最新更新