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

Я следовал здесь ответу, который был действительно полезен:

Как отправить стандартное электронное приглашение при вызове addGuest на CalendarEvent?

Однако, когда я создаю событие в Apps Script, у него нет свойства участника, к которому можно добавить адрес электронной почты.

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

Код для создания события:

function createCalendarEntry(programmeCalendar, eventName, eventStartDateTime, eventEndDateTime) {

  var programmeCalendarID = CalendarApp.getCalendarById(programmeCalendar);

  var event = programmeCalendarID.createEvent(eventName,
    new Date(eventStartDateTime),
    new Date(eventEndDateTime),
    {sendInvites:true});
  console.log('Event ID: ' + event.getId());

  //Stop guests inviting other people
  event.setGuestsCanInviteOthers(false);

  var eventID = event.getId();
  return eventID;

}

Код для добавления нового гостя:

  // Invite the user to the given event using the Advanced Calendar API
  var trimmedEventID = eventID.toString().replace('@google.com', '');
  var programmeCalendarID = 'my-calendar@example.com';
  var advancedEvent = Calendar.Events.get(programmeCalendarID, trimmedEventID);

  console.log('Advanced Event:' + advancedEvent);

  if (typeof advancedEvent.attendees === 'undefined') {
  console.log('Advanced Event Attendees: is undefined');
  // how can I add the attendee property here?
  } else {
  var attendees = advancedEvent.attendees;
  console.log('Advanced Event Attendees: is defined' + attendees);
  attendees.push({email: guestEmailAddress});
  var resource = { attendees: attendees };
  }
  var args = { sendUpdates: "all" };

  // Add the guest to the invite while also sending an invite email
  var eventObjectForDebugging = Calendar.Events.patch(resource, programmeCalendarID, trimmedEventID, args);
  console.log('Event object for debugging:' + eventObjectForDebugging);

1 Ответ

0 голосов
/ 09 января 2020

Как вы можете прочитать в документации , вы можете добавлять гостей с помощью объекта опция , который имеет следующие параметры:

enter image description here

Вы на самом деле уже используете этот объект в своем коде:

{sendInvites:true});

Поэтому для добавления посетителей будет достаточно добавить поле guests к вашему объекту:

{guests:'test1@example.com, test2@example.com', sendInvites:true});
...