Google Plus API - Keyinvalid

时间:2014-10-23 22:58:49

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

我正在尝试使用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= {键}

这是错误: {“error”:{“errors”:[{“domain”:“usageLimits”,“reason”:“keyInvalid”,“message”:“Bad Request”}],“code”:400,“message”:“错误请求“}}

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

但是,我仍然收到错误。

1 个答案:

答案 0 :(得分:2)

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

  

“API Discovery Service仅提供不公开的方法   要求认证。此外,与您提出的要求不同   许多其他Google API,您对Discovery服务的请求   API不应包含API密钥。如果你确实提供了钥匙,那么   请求将失败。此行为有助于确保您不这样做   在分发工具时,会意外地泄露您的API密钥   基于Google API发现服务。“

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

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

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

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

为避免不断设置和取消设置密钥,我会在验证之前加载所有需要的API,然后设置API密钥,从而不再有问题。