我正在尝试创建一个具有特定名称和摘要的日历,并获取Google以编程方式分配给它的ID。
我知道如何手动完成,我只是希望有一种方法来创建日历,然后发布通过id引用它的事件。
使用下面的脚本,如CalendarApp文档中所示,提供了许多包含文本' US Holidays'。
的日历。// Gets the public calendar named "US Holidays".
var calendars = CalendarApp.getCalendarsByName('US Holidays');
Logger.log('Found %s matching calendars.', calendars.length);
我已经取代:
Logger.log('Found %s matching calendars.', calendars.length);
使用:
Logger.log('Found %s matching calendars.', calendars.getId());
但我明白了:
TypeError:在对象Calendar中找不到函数getId。 (第22行, 文件"")
答案 0 :(得分:3)
请记住getCalendarsByName()
返回一个数组;这就是calendars
具有length
属性的原因。 getId()
方法适用于个人日历对象,例如日历[0] .getId()。
提示:当您在Google Apps脚本编辑器中编写代码时,请注意并利用 auto-completion feature。例如,从您显示的示例开始,将光标放在第二行calendars
后面的点之前。如果现在按。,自动完成将弹出一个属性和方法列表,这些属性和方法适用于.
之前的对象。请参阅下面的视频:由于calendars
没有getId()
方法,因此不是列表中的某个项目,这是一个很好的线索。 (这些都是数组方法和属性。)
function myFunction() {
// Gets the public calendar named "US Holidays".
var calendars = CalendarApp.getCalendarsByName('US Holidays');
Logger.log('Found %s matching calendars.', calendars.length.toString() );
for (var i=0; i<calendars.length; i++) {
Logger.log('calendar[%s] id: %s.', i.toString(), calendars[i].getId() );
}
}
[15-10-16 14:46:58:664 EDT] Found 1 matching calendars.
[15-10-16 14:46:58:666 EDT] calendar[0] id: en.canadian#holiday@group.v.calendar.google.com.
(您可能会注意到我没有实际使用美国假期日历进行测试!)