1

我正在google apps script为电子表格制作一个插件,其中电子表格数据将用于在谷歌日历中创建事件。一切正常,除非我从我的测试插件运行代码,事件由于某种原因没有添加到日历中。但是,如果我从我的脚本运行代码,那么它工作正常。这是我的代码,

function createEvent(date, start_time, end_time, event_title)
{
  var dateCol = 0;
  var startCol = 0;
  var endCol = 0;
  var titleCol=0;

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getActiveSheet();
  var lr = dataSheet.getLastRow()-1;
  var lc = dataSheet.getLastColumn();

  var rng = dataSheet.getRange(1, 1, 1, lc).getValues();

  // This will match the column corresponsing to our selected value in dropdown from html sidebar.
  for (var i=0; i < rng[0].length; i++)
  {
    if (date == rng[0][i]) {
      dateCol = i;
    }
    if (start_time == rng[0][i]) {
      startCol = i;
    }
    if (end_time == rng[0][i]) {
      endCol = i;
    }
    if (event_title == rng[0][i]) {
      titleCol = i;
    }
  }

  // This part handles the creating of an event in calendar
  var getUser = Session.getEffectiveUser().getUserLoginId();
  var getCal = CalendarApp.getCalendarById(getUser);

  var data_rng = dataSheet.getRange(2, 1, lr, lc).getValues();

  for (var j=0; j < data_rng.length; j++)
  {
    var getDate = new Date(data_rng[j][dateCol]);
    var getDate2 = new Date(data_rng[j][dateCol]);

    var getStart =new Date(data_rng[j][startCol]);
    var getEnd = new Date(data_rng[j][endCol]);

    getDate.setHours(getStart.getHours());
    getDate.setMinutes(getStart.getMinutes());

    getDate2.setHours(getEnd.getHours());
    getDate2.setMinutes(getEnd.getMinutes());

    var title = data_rng[j][titleCol];
    getCal.createEvent(title, getDate, getDate2);
  }
}

我需要做其他事情才能让它在插件上工作吗?如何使 CalendarApp 在插件上工作?

4

0 回答 0