Получить имя пользователя при отправке формы, когда форма встроена
Я модифицировал скрипт учебного пособия службы поддержки, найденный здесь:
https://developers.google.com/apps-script/articles/helpdesk_tutorial
Поскольку это только для внутреннего использования, я удалил поле "Контактный адрес электронной почты" и установил в журнале формы имя пользователя для электронной таблицы. Я отредактировал функцию formSubmitReply для компенсации:
Оригинал:
function formSubmitReply(e) {
var userEmail = e.values[3];
MailApp.sendEmail(userEmail,
"Help Desk Ticket",
"Thanks for submitting your issue. \n\nWe'll start " +
"working on it as soon as possible. \n\nHelp Desk",
{name:"Help Desk"});
}
Изменен:
function formSubmitReply(e) {
var userEmail = e.user;
MailApp.sendEmail(userEmail,
"Help Desk Ticket",
"Thanks for submitting your issue. \n\nWe'll start " +
"working on it as soon as possible. \n\nHelp Desk",
{name:"Help Desk"});
}
Как видите, все, что я сделал, это изменил способ определения переменной userEmail. Когда я просматриваю Live-форму и отправляю тикет, это похоже на работу.
Однако после того, как я встроил форму во внутренний сайт Google (наш "интранет"), он больше не работает.
Есть ли способ, которым мне нужно определить userEmail для работы, когда форма встроена?
Я также попробовал это:
var userEmail = sheet.getRange(lastRow, getColIndexByName("Username")).getValue();
Но не повезло. Любая помощь будет оценена! Я, очевидно, новичок в этом и просто пытаюсь взломать несколько вещей, чтобы заставить его работать должным образом.
ура
1 ответ
Событие, очевидно, строится по-разному для встроенной формы.
Пытаться:
var userEmail = Session.getEffectiveUser().getEmail();
Это будет независимо от события и должно идентифицировать пользователя, выполняющего скрипт.