如何正确使用 Google Calendar API 的 Events.Insert 命令?

2022-09-01 21:44:32

所以我一直在使用REST方法来调用Google的API。我需要将事件插入到我拥有其 ID 的特定日历中。这是我发送的 POST 请求:

地址: https://www.googleapis.com/calendar/v3/calendars/{日历ID}/事件

身体:

Authorization:  Bearer {access_token}
{
 "end": {
  "dateTime": "2012-08-30T12:30:00",
  "timeZone": "America/Chicago"
 },
 "start": {
  "dateTime": "2012-08-30T14:00:00",
  "timeZone": "America/Chicago"
 },
 "summary": "E E 306",
 "colorId": "9"
 "kind": "calendar#event"
}

这是我不断得到的回应:

{
 "error":{
  "errors":[
   {
    "domain":"calendar",
    "reason":"timeRangeEmpty",
    "message":"The specified time range is empty.",
    "locationType":"parameter",
    "location":"timeMax"
   }
  ],
  "code":400,
  "message":"The specified time range is empty."
 }
}

我不明白我可能做错了什么。我已经输入了所有必要的数据,它要求我提供一个甚至不存在的事件参数。我也找不到任何关于这个特定问题的文档。有没有人看到我错过的东西?


答案 1

在问这个问题的过程中,我脸色如此之重,以至于我认为我已经给自己造成了脑损伤。事实证明,我找不到有关此问题的任何文档的原因是因为它非常愚蠢。

它之所以给我一个如此有趣的错误,是因为在我进行测试的复制粘贴中,我翻转了开始和结束时间。所以,我告诉Google Calendars输入一个在开始之前结束的活动,这通常不会结束得太好。

长话短说,如果您在尝试插入事件时遇到引用“timeMax”参数的错误,请检查您的开始和结束时间。


答案 2

日期时间必须在 RFC3339 上,如下所述:

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


推荐