Google脚本获取不存在的日历事件ID

时间:2020-01-03 18:34:09

标签: google-calendar-api

我正在尝试编写一个脚本,以更新Calendar API导入Google表格的日历事件。问题在于Calendar API收集的事件ID部分不正确。

下面的脚本很好地导入了事件,并在日志中列出了,但是...

function myTestFunction() {
  var cal = CalendarApp.getCalendarById('myCalendarID@group.calendar.google.com');
  var events = cal.getEvents(new Date("11/01/2019 01:00 AM"), new Date("12/31/2019 11:30 PM"));
  for(var i = 0; i<events.length; i++){
    var title = events[i].getTitle();  
    var id = events[i].getId();
    Logger.log(title + " : " + id)
  };
}

某些事件ID的格式正确,以字母和数字结尾的@ google.com,但某些ID用大写字母表示,没有@ google.com。在下面,您可以看到日志中列出的一些示例:

[20-01-03 09:53:11:286 PST] Event 1 : 20A8C77F-9CF8-440D-B491-DC8FE42AF525 
[20-01-03 09:53:11:287 PST] Event 2 : chij6cpiclgjab9m6os3eb9k6csj8b9ocgsm4b9ochgmachm74sm6e34cg@google.com 
[20-01-03 09:53:11:288 PST] Event 3 : 26A9274C-71F7-47CB-A57D-C45ADA45A515 
[20-01-03 09:53:11:289 PST] Event 4 : cgp62o9l6grj8b9j6dh38b9k74o34b9o65ij6b9g6lhm6e9j65j34p9hck@google.com

当我尝试通过该ID获取事件时,@ google.com上具有正确ID的事件可以正常运行,但是当方括号中的大写字母ID时,方法GetByID()返回null。

有趣的是,奇怪的ID仅发生在我拥有的事件中。在所有事件中,属于其他用户的ID均为100%正确。我已经导入了1k多个事件,其中大多数是正确的,但是我的一些个人事件具有奇怪的ID。我认为它可能与Safari和Mac上的Calendar App之间的某些错误连接有关,但是我尝试在Chrome中运行脚本,效果是相同的。

google文档中的神秘信息表明,该事件的重复性可能存在一些不匹配,但在重复事件和非重复事件中也会出现奇怪的ID。

您有什么想法,如何获取正确的ID或如何使用此类奇怪的ID来获取以后的事件?

0 个答案:

没有答案