Javascript 如何授权自定义功能使用谷歌日历?

Javascript 如何授权自定义功能使用谷歌日历?,javascript,google-apps-script,google-sheets,google-calendar-api,custom-function,Javascript,Google Apps Script,Google Sheets,Google Calendar Api,Custom Function,我正试图在GoogleSheets中创建一个自定义函数,生成一个带有去巴西假期的数组,并在另一个计算假期数据间隔的公式中实现自动化。但此代码正在生成错误消息: 不允许脚本执行此操作。所需权限:(| | | |)第4行) 我已经在GoogleAPI控制台中允许了日历API并创建了凭据,但我不知道是否需要在代码中使用它们,或者是否存在一些Google问题 以下是我尝试的代码: function FERIADOS() { var cal = "pt.brazilian#holiday@group.

我正试图在GoogleSheets中创建一个自定义函数,生成一个带有去巴西假期的数组,并在另一个计算假期数据间隔的公式中实现自动化。但此代码正在生成错误消息:

不允许脚本执行此操作。所需权限:(| | | |)第4行)

我已经在GoogleAPI控制台中允许了日历API并创建了凭据,但我不知道是否需要在代码中使用它们,或者是否存在一些Google问题

以下是我尝试的代码:

function FERIADOS() {
  var cal = "pt.brazilian#holiday@group.v.calendar.google.com";
  var calendario = CalendarApp.getCalendarById(cal);

  var dtini = new Date('January 1, 2019 00:00:01 -0300');
  var dtfim = new Date('December 31, 2020 23:59:59 -0300');

  var eventos = calendario.getEvents(dtini, dtfim);

  for (var i = 1; i < eventos.length ; ++i) {
     var event = [];
     event[i] = eventos[i].getStartTime(); 
  }

  return event;
}
函数FERIADOS(){ var cal=“pt.巴西人#holiday@group.v.calendar.google.com"; var calendario=CalendarApp.getCalendarById(cal); var dtini=新日期('2019年1月1日00:00:01-0300'); var dtfim=新日期('2020年12月31日23:59:59-0300'); var eventos=calendario.getEvents(dtini,dtfim); 对于(变量i=1;i日历服务不是自定义功能可用的服务之一。阅读和

你不能。正如错误消息明确指出的那样。因此,您必须编写一个宏或菜单驱动函数,因为当前/正在安装的用户会调用该函数,并将其与该用户帐户及其权限关联。即使创建宏,它也无法工作。我认为这是因为定制函数不允许使用日历服务,所以我可以临时使用的唯一方法是创建一个新的collumn并在每行插入数组,然后使用间隔。我也将在代码中创建一个时间驱动触发器,因此间隔将始终更新。但是谢谢你的帮助汉克斯,我只是在一张纸上每隔一段时间插入数组内容,这样就可以了。