Google Calendar API密钥不允许通过简单的GET请求访问公共日历

时间:2014-12-09 21:23:55

标签: javascript google-calendar-api

通过Google API资源管理器,我可以使用日历ID访问我的公共日历活动列表。所以我知道那是对的

https://developers.google.com/google-apps/calendar/v3/reference/events/list

他们使用的GET示例如下所示:

GET
https://www.googleapis.com/calendar/v3/calendars/iu8chrc23t5nuejb3q28lt970o%40group.calendar.google.com/events?key={YOUR_API_KEY}

X-JavaScript-User-Agent:  Google APIs Explorer

我的理解是,我需要做的就是将我的API密钥粘贴到YOUR_API_KEY部分,我应该能够通过简单地将该URL放入浏览器来检索正确的响应。

假设我的API密钥为ABCDEF1234

然后我将其粘贴到浏览器中并按go:

https://www.googleapis.com/calendar/v3/calendars/iu8chrc23t5nuejb3q28lt970o%40group.calendar.google.com/events?key= {ABCDEF1234}

不幸的是,我得到的回应告诉我出了问题

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "keyInvalid",
    "message": "Bad Request"
   }
  ],
  "code": 400,
  "message": "Bad Request"
 }
}

起初我以为我没等足够长时间才能激活Key,但现在已经超过24小时,所以我不确定为什么密钥无效。

在回答this问题时,我确定我正在使用公钥。

我唯一的主要原因是API密钥与谷歌“项目”相关联,但我的简单GET请求却没有。我的最终应用程序是一个简单的静态网页,其中包含一个小脚本来显示即将发生的日历事件,因此给出的Java,PHP,Ruby,Python等示例不适用。

摘要:公共日历,简单访问API v3中即将发生的事件(之前我在v2中这样做过)。

1 个答案:

答案 0 :(得分:3)

我知道这个问题已经很久了,但也许可以帮助其他偶然发现同一件事的人(例如我)。

解决方案:花括号也必须更换。因此,您的请求尤其应如下所示:https://www.googleapis.com/calendar/v3/calendars/iu8chrc23t5nuejb3q28lt970o%40group.calendar.google.com/events?key=ABCDEF1234

否则,您将得到显示的错误消息。另外,请确保所使用的日历是公开的。如果不是,您将收到以下错误消息:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "notFound",
    "message": "Not Found"
   }
  ],
  "code": 404,
  "message": "Not Found"
 }
}