我正在尝试编写一个脚本,以更新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来获取以后的事件?