通过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中这样做过)。
答案 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"
}
}