Я хотел бы отправлять приглашения по электронной почте для событий календаря, когда кто-либо устанавливает флажок для соответствующего события в форме Google.Форма имеет несколько опций для событий одновременно, и я хотел бы иметь возможность отправлять каждое приглашение на мероприятие из одной и той же отправки формы.Выборы хранятся в той же ячейке и разделяются знаком «,», поэтому я использую функции toString и Split.
Вот что я до сих пор извиняюсь за неэффективность, так как я совсем новичок вэто:
function onFormSubmit(e) {
var user = {name: e.namedValues['Name'][0], email: e.namedValues['Email Address'][0]};
var response = [];
var responseValues = SpreadsheetApp.openById('sheet_Id').getSheetByName('Form Responses').getDataRange().getValues();
var responseArray = []; // array for holding spreadsheet converted to String
for (var k = 0; k < responseValues.length; k++){
responseArray.push(toString(responseValues[k]).split(", "));
}
var eventValues = SpreadsheetApp.openById('sheet_Id').getSheetByName('Event Times').getDataRange().getValues();
// Search for event names within "Event Times" sheet. If the response includes an event name from "Event Times" sheet, log that event ID from the sheet
for(var i = 0; i < responseArray.length; i++){
for(var j = 0; j < eventValues.length; j++){
if(responseArray[i] == eventValues[j]) {
response.push(eventValues[j+5]); //the event ID is 5 cells to the right of the event name in the "Event Times" sheet
}
}
}
sendInvites_(user, response);
}
function sendInvites_(user, response) {
var cal = CalendarApp.getCalendarById('calendar_Id');
for (var i = 0; i < response.length; i++) {
cal.getEventById(response[i]).addGuest(user.email);
}
}
Спасибо за помощь.