我正在尝试创建一个具有特定名称和摘要的日历,并获取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行,
文件“”)
最佳答案
记住getCalendarsByName()
返回一个数组;这就是calendars
具有length
属性的原因。 getId()
方法适用于单个日历对象,例如calendars [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#[email protected].
(您可能会注意到,我实际上并未测试美国假期日历!)
关于javascript - 如何以编程方式获取日历的ID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33177317/