0

在我的脚本和函数的后半部分,我不断收到无法调用方法错误,我不知道为什么。我完全模仿了模板脚本,但我不确定它为什么不调用该方法。

任何见解将不胜感激。

谢谢。

function createEvents(e){

//Get the active application
var app = UiApp.getActiveApplication();

try{
   //get the entries;
   var eventDate = e.parameter.eventDate;
var eventPeople = e.parameter.eventPeople;
var eventCompany = e.parameter.eventCompany;
var eventName = e.parameter.eventName;
var eventTime = e.parameter.eventTime;  
var eventPhone = e.parameter.eventPhone;  
var eventEmail = e.parameter.eventEmail;  
 var eventTaken = e.parameter.eventTaken;  


//Get the calendar
var cal = CalendarApp.getCalendarsByName('Phoenix Reservations')[0];//Change the calendar name
var eventStartTime = eventDate;
//End time is calculated by adding an hour in the event start time 
var eventEndTime = new Date(eventDate.valueOf()+60*60*1000);
//Create the events
cal.createEvent(eventPeople,eventCompany,eventName,eventTime,eventPhone,eventEmail,eventTaken);

//Log the entries in a spreadsheet
var ss = SpreadsheetApp.openById('KEY_TAKEN_OUT');//Change the spreadhseet key to yours
var sheet = ss.getSheets()[0];
sheet.getRange(sheet.getLastRow()+1, 1, 1, 5).setValues([[new Date(), eventDate,eventPeople,eventCompany,eventName,eventTime,eventPhone,eventEmail,eventTaken, 'Event created']]);

//Show the confirmation message
app.add(app.createLabel('Event created Successfully'));
//make the form panel invisible
app.getElementById('panel').setVisible(false);
return app;
}

  //If an error occurs, show it on the panel
  catch(e){
   app.add(app.createLabel('Error occured: '+e));
   return app;
 }
}
4

1 回答 1

1

此行可能什么也不返回:

var cal = CalendarApp.getCalendarsByName('Phoenix Reservations')[0];//Change the calendar name

你可以记录它来确认这样 Logger.log(cal)

'Phoenix Reservations' 是您拥有的日历名称还是您具有写入权限的日历名称?

编辑:你能测试一下这个简单的功能,看看这个日历是否一切正常吗?它将刚才创建一个事件。

function testcal(){
  var cal = CalendarApp.openByName('Phoenix Reservations');// or you can replace this with your var definition : same result normally ;-)
  if (cal) {
  var title = 'Test Event';
  var start = new Date();
  var end = new Date(start.valueOf()+60*60*1000);
  Logger.log(cal.getName()+' '+start+'   '+end)
  var desc = 'Created using Google Script';
  var loc = 'there';

  var event = cal.createEvent(title, start, end, {
      description : desc,
      location : loc
  });
  }   
}

编辑 2:我修改了记录器以使其显示日历名称。

于 2012-06-30T13:25:54.273 回答