Пример календаря Google App Maker.getCalendarByName вместо getDefaultCalendar - PullRequest
0 голосов
/ 20 декабря 2018

Я новичок в Google App Maker и пытаюсь создать собственную версию календаря.В этом примере код захватывает календарь по умолчанию с помощью getDefaultCalendar.У меня есть другой календарь, который я хочу получить (по имени или идентификатору).После использования getCalendarByName и отладки он находит календарь, однако, когда я использую его с getEvents, он не заполняется в примере приложения.

Код ниже взят из образца календаря.

/**
* Gets Calendar events.
* @param {Query} query - data query with parameters.
* @return {Array<Event>} events from Calendar.
*/
function getEvents_(query) {
var startDate = query.parameters.StartDate;
startDate.setHours(0, 0, 0, 0);

var endDate = query.parameters.EndDate;
endDate.setDate(endDate.getDate() + 1);
endDate.setHours(0, 0, 0, 0);

if (startDate.getTime() > endDate.getTime()) {
return [];
}

var results = [];
var events = 
CalendarApp.getDefaultCalendar().getEvents(startDate,endDate);

events.forEach(function(item) {
var event = app.models.Events.newRecord();
event.StartDate = item.getStartTime();
event.EndDate = item.getEndTime();
event.Title = item.getTitle();
event.Color = item.getColor();
results.push(event);
});

return results;
}

1 Ответ

0 голосов
/ 20 декабря 2018

Функция getCalendarsByName с s и, таким образом, она возвращает массив календарей.Если вы знаете, что получите только один правильный результат, вы можете просто изменить код на:

CalendarApp.getCalendarsByName('email@gmail.com')[0].getEvents(startDate,endDate);

getCalendarById вернет календарь самостоятельно, так что вы можете просто использовать его вместо этого.

...