Google Apps Script, получить ошибку вложения события - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь дублировать все события из одного календаря в другой, сохраняя цвета событий и вложения.Следующее для целей тестирования.Работает отлично, пока я не добавил код, найденный здесь , чтобы получить вложение события.Google API явно активирован правильно.

function myFunction() {
  var calendarSource = CalendarApp.getCalendarById("somecalendarIDhere@group.calendar.google.com");
  var calendarDestination = CalendarApp.getCalendarById("primary");
  var eventToCopy = calendarSource.getEvents(new Date("July 21, 2009 EST"), new Date("July 22, 2018 EST"));

  for (var i in eventToCopy){
      // line below throws error
      var res = Calendar.Events.get(calendarSource, eventToCopy[i].getId(), {fields: "attachments/fileId"}); // THROWS "not found" error in debugger
      var fileIds = res.attachments.map(function(e){return e.fileId});
      var options = {description:eventToCopy[i].getDescription(), location: eventToCopy[i].getLocation(), attachments:fileIds}; 
      var newEvent = calendarDestination.createEvent(eventToCopy[i].getTitle(), eventToCopy[i].getStartTime(),eventToCopy[i].getEndTime(), options );
      newEvent.setColor(eventToCopy[i].getColor());
}
}

enter image description here enter image description here

1 Ответ

0 голосов
/ 17 мая 2018

calendarSource - это объект календаря. Calendar.Events.get ищет calendarID.

попробовать:

var res = Calendar.Events.get(calendarSource.getId().split('@')[0], eventToCopy[i].getId(), {fields: "attachments/fileId"}); // THROWS "not found" error in debugger
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...