Как я могу указать статус гостя, чтобы он поместил имена в нужную ячейку? - PullRequest
0 голосов
/ 23 апреля 2020

Я очень новичок в этом виде программирования. Чтобы начать код, я следовал некоторым учебникам и искал информацию на этом сайте.

Я хочу создать систему, которая позволит мне автоматически получать информацию из моего календаря Google. информация, которую я хочу получить из моего календаря: имя события, время начала, время окончания, местоположение, описание, гости события и статус там.

Я сделал следующий код, я застрял. Я получаю своих гостей, но не там статус. Я хочу, чтобы подтвержденные гости отправляли электронные адреса в столбце 6, и хочу, чтобы люди, которые отклонили его в столбце 7.

Проблема нет в том, что я не могу найти правильный путь / IF-операторы для этого кода. кто-то сказал мне, чтобы использовать; getGuestStatus () внутри оператора if, чтобы решить, к какой строке / массиву добавить адрес электронной почты.

, но я не понимаю, как это сделать. Есть ли кто-нибудь, кто мог бы помочь мне.

Я исправил информацию в таблице, как вы можете видеть в моем коде.

function getEvents() {

  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cal = CalendarApp.getCalendarById("###");    "my calendar id is normaly here"
  var events = cal.getEvents(new Date("06/01/2020 12:00 AM"), new Date("06/30/2030 12:00 AM"));

  var lr = ss.getLastRow();
  ss.getRange(2,1,lr-1,6).clearContent();

  for(var i = 0;i<events.length;i++){

    var title = events[i].getTitle();
    var sd = events[i].getStartTime();
    var ed = events[i].getEndTime();
    var loc = events[i].getLocation();
    var des = events[i].getDescription();
    var guests = events[i].getGuestList();
    var guestEmails = "";
    for (var j = 0; j < guests.length; j++){
    var guest = guests[j].getEmail();
    guestEmails += guest+", ";
    Logger.log(guest)

    }
    ss.getRange(i+2, 1).setValue(title);
    ss.getRange(i+2, 2).setValue(sd);
    ss.getRange(i+2, 2).setNumberFormat("dd/mm/yyyy /hh:mm");
    ss.getRange(i+2, 3).setValue(ed);
    ss.getRange(i+2, 3).setNumberFormat("dd/mm/yyyy /hh:mm");
    ss.getRange(i+2, 4).setValue(loc);
    ss.getRange(i+2, 5).setValue(des);
    ss.getRange(i+2, 6).setValue(guestEmails);

    }

}

Большое спасибо всем, кто нашел время, чтобы прочитать это и может помочь мне.

Alfredo

1 Ответ

0 голосов
/ 23 апреля 2020

Статус гостя можно получить с помощью guests[j].getGuestStatus();

. Вы можете создать комбинированную строку guestInfo, которая содержит guestEmail и guestStatus.

Пример:

function getEvents() {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var cal = CalendarApp.getCalendarById("primary")
  var events = cal.getEvents(new Date("04/04/2020 12:00 AM"), new Date("05/05/2020 12:00 AM"));
  var lr = ss.getLastRow();
  ss.getRange(2, 1, lr - 1, 6).clearContent();
  for (var i = 0; i < events.length; i++) {
    var title = events[i].getTitle();
    var sd = events[i].getStartTime();
    var ed = events[i].getEndTime();
    var loc = events[i].getLocation();
    var des = events[i].getDescription();
    var guests = events[i].getGuestList();
    var guestInfo = "";
    for (var j = 0; j < guests.length; j++) {
      var guest = guests[j].getEmail();
      var status = guests[j].getGuestStatus();
      Logger.log(guest);
      guestInfo += guest+": " + status + ", ";
    }
    ss.getRange(i + 2, 1).setValue(title);
    ss.getRange(i + 2, 2).setValue(sd);
    ss.getRange(i + 2, 2).setNumberFormat("dd/mm/yyyy /hh:mm");
    ss.getRange(i + 2, 3).setValue(ed);
    ss.getRange(i + 2, 3).setNumberFormat("dd/mm/yyyy /hh:mm");
    ss.getRange(i + 2, 4).setValue(loc);
    ss.getRange(i + 2, 5).setValue(des);
    ss.getRange(i + 2, 6).setValue(guestInfo);

  }
}
...