getCreators() 类型错误

getCreators() Type Error

我编写了以下函数来尝试获取创建 gCal 事件的用户。

为了测试这一点,我在日历上创建了一个事件并尝试 运行 脚本。当脚本执行时出现错误:"TypeError: Cannot find function getCreators in object CalendarEvent. (line 68, file "Code")"。

知道为什么会这样吗?我相当确定 getCreators() 是对象 CalendarEvent 中的一个函数(参考:https://developers.google.com/apps-script/reference/calendar/calendar-event#getCreators()

function getuser(instr) {
  var today = new Date();
  var scriptProperties=PropertiesService.getScriptProperties();
  var instrcal= scriptProperties.getProperty(instr);
  var event=CalendarApp.getCalendarById(instrcal).getEventsForDay(today);
  if (event<1) {
    var user= 'None'
    }
  else if (event>1) {
    var user= 'Multiple Users'
    }
  else {
    var user= event.getCreators()
    }
  return user
}

getEventsForDay returns an array of CalendarEvent objects,当天的所有活动,即使只有一个。
您需要通过事件来找到您想要的事件,然后调用 getCreators().

您可以使用

验证这一点
var event=CalendarApp.getCalendarById(instrcal).getEventsForDay(today)[0];

此处调用有效。

方法 getEventsForDay(date) gets an array 给定日期发生的所有事件。

检查您是否正在执行:event < 1 而不是 event.length < 1

代码:

function getuser(instr) {
    var today = new Date(),
        scriptProperties = PropertiesService.getScriptProperties(),
        instrcal = scriptProperties.getProperty(instr),
        events = CalendarApp.getCalendarById(instrcal).getEventsForDay(today),
        user = 'None';

    if (events.length === 1) {
        user = events[0].getCreators();
    } else if (events.length > 1) {
        user = 'Multiple Users';
    }

    return user;
}