keyInvalid调用Google Calendar API时出错

时间:2018-02-12 11:56:29

标签: google-api aws-lambda google-oauth google-calendar-api

我正在撰写一个查询Google日历活动的Lambda函数。虽然我在Google Developers Console上成功创建了凭据(客户端ID和客户端密码),但我无法访问这些事件。错误:

  

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

我的http请求如下所示: https://www.googleapis.com/calendar/v3/calendars/MY_CLIENT_ID/events?key=MY_CLIENT_SECRET

出了什么问题?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

  

"域":" usageLimits","原因":" keyInvalid"," message":&# 34;错误请求"

表示您发送的密钥是无效的api密钥。

背景信息

当您向Google API发出公共数据请求时,您可以使用API​​密钥。公共数据是不属于用户的数据。例如,谷歌+,谷歌书籍上的公开帖子。在这些情况下,您可以使用api密钥以使用

访问api
GET https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&q=surfing&type=test&key={YOUR_API_KEY}

键使用您在google开发者控制台中创建的API密钥识别您的google应用程序。

私人数据是用户拥有的数据,例如您的Google日历,应用程序无法使用out权限发布到该日历。为此,我们使用Oauth2。您在Google开发者控制台上创建了一个客户端,然后使用oauth2登录该用户。您将获得一个访问令牌,然后您可以提出请求

https://www.googleapis.com/calendar/v3/calendars/MY_CLIENT_ID/events?accesstoken=ACCESSTOKEN

请注意,第一个请求使用了密钥,第二个请求使用了accessstoken。

<强> Anwser

您的问题是您将客户端密钥作为api密钥发送,这将无效,因为首先客户端密钥不是API密钥,第二个事件是私有用户数据,这将要求您首先验证您的用户。