我正在尝试创建一个具有特定名称和摘要的日历,并获取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()方法,因此它不是列表中的项目之一,这是一个很好的线索。 (这些都是数组方法和属性。)

javascript - 如何以编程方式获取日历的ID?-LMLPHP

例:

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/

10-09 04:07