Почему я не могу вернуть список указанных c адресов электронной почты из Календарного приглашения с помощью скрипта приложения? - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь вернуть список указанных c адресов электронной почты всех участников событий в календаре GSuite со скриптом, и я могу только вернуть либо идентификационный номер, либо список, который отображается только как "EventGuest, EventGuest, EventGuest .... "

Можно ли вернуть адрес электронной почты сам? Заранее благодарен за любые указания здесь!

Это сценарий basi c, с которым я работаю:

function listCalendarAttendees(){
var calendar =  CalendarApp.getCalendarById('AnyCalendarTEST@gmail.com');
var sheet = SpreadsheetApp.openById('TEST ID').getSheetByName('Bobs Calendar');
var startTime = new Date();
var endTime = new Date(startTime.getTime()+(1000*60*60*24*7));
var events = calendar.getEvents(startTime, endTime);
Logger.log('Number '+events.length);
for(var x=0;x<events.length;x++){
  var event = events[x];
  var messages = event.getTitle();
  var eventStart = event.getStartTime();
  var emails = event.getCreators().toString();
  var descriptions = event.getDescription();
  var guestListLength = event.getGuestList().length;
  var guestListNames =event.getGuestList().toString();

sheet.appendRow([messages,eventStart,emails,descriptions,guestListLength,guestListNames]);
}
}

Ответы [ 2 ]

1 голос
/ 20 февраля 2020
  • Вы хотите получить электронные письма всех гостей мероприятия.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точки модификации:

  • getGuestList() возвращает объект EventGuest[]. В этом случае электронное письмо может быть получено с помощью getEmail() из EventGuest.
  • . Когда в 1015 * используется appendRow(), стоимость процесса будет высокой. Поэтому в этой модификации вместо нее используется setValues().

Модифицированный скрипт:

Когда ваш скрипт модифицирован, он становится следующим:

С:
for(var x=0;x<events.length;x++){
  var event = events[x];
  var messages = event.getTitle();
  var eventStart = event.getStartTime();
  var emails = event.getCreators().toString();
  var descriptions = event.getDescription();
  var guestListLength = event.getGuestList().length;
  var guestListNames =event.getGuestList().toString();

sheet.appendRow([messages,eventStart,emails,descriptions,guestListLength,guestListNames]);
}
Кому :
var values = [];  // Added
for(var x=0;x<events.length;x++){
  var event = events[x];
  var messages = event.getTitle();
  var eventStart = event.getStartTime();
  var emails = event.getCreators().toString();
  var descriptions = event.getDescription();
  var guestListLength = event.getGuestList().length;
  var guestListNames = event.getGuestList().map(function(e) {return e.getEmail()}).join(",");  // Modified
  values.push([messages,eventStart,emails,descriptions,guestListLength,guestListNames]);  // Modified
}
sheet.getRange(sheet.getLastRow() + 1, 1, values.length, values[0].length).setValues(values);  // Added
  • В этой модификации электронные письма разделяются , и помещаются в ячейку.

Ссылки:

Если я неправильно понял Ваш вопрос, и это было не то направление, которое вы хотите, я прошу прощения.

0 голосов
/ 20 февраля 2020
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...