Ошибки при использовании e.response.getRespondentEmail () и e.response.getResponses () - PullRequest
0 голосов
/ 01 мая 2020

Я создал очень простую форму с несколькими вопросами "Да / Нет", используя мою недавно созданную учетную запись G-Suite Enterprise, которая отправляет электронное письмо при запуске OnSubmit. Следующий код работает просто отлично.

function OnSubmit(e) {

  //Get responses from current user on form
  var AreYouSick = e.namedValues["Are you sick?"];
  var FullName = e.namedValues["Name"];

  //determine email message based on if the user passed or failed the survey
  if(AreYouSick == "No")
  {
    var subject = "Testing Google Forms Email - PASS";
    var textBody = "Thank you " + FullName + " for completing the survey. \n\n";    
    var BodyMsg = "Thank you <strong>" + FullName + "</strong> for completing the survey.";
  }
  else
  {
    var subject = "Testing Google Forms Email- FAIL";
    var textBody = "Thank you " + FullName + " for completing the survey\n\n";
    var BodyMsg = "Thank you <strong>" + FullName + "</strong>";
  }

  var emailTo = e.namedValues["Email Address"];
  var emailCC = "MyPersonalEmail@me.com";
  var options = { htmlBody: BodyMsg, cc: emailCC, name: "Testing" };

  if(emailTo !== undefined){
    GmailApp.sendEmail(emailTo, subject, textBody, options);
  }  
}

Однако я хотел упростить его, извлекая все ответы из формы, а затем проверяя, был ли какой-либо ответ «Да», и если они были, отправьте другое электронное письмо. У меня есть форма для сбора адресов электронной почты, чтобы я мог использовать getRespondentEmail ()

function OnSubmit(e) {
  var FullName = e.namedValues["Name"];

  //var itemResponses = e.response.getItemResponses();
  var itemResponses = e.response.getResponses();
  if(itemResponses.indexOf("Yes") > -1)
  {
     //respondent failed prescreening survry
    var subject = "Testing Google Forms Email- FAIL";
    var textBody = "Thank you " + FullName + " for completing the survey\n\n";
    var BodyMsg = "Thank you <strong>" + FullName + "</strong>";
  }
  else
  {
    //respondent passed prescreening survey
    var subject = "Testing Google Forms Email - PASS";
    var textBody = "Thank you " + FullName + " for completing the survey. \n\n";    
    var BodyMsg = "Thank you <strong>" + FullName + "</strong> for completing the survey.";
  }

  var emailTo = e.response.getRespondentEmail();
  var emailCC = "MyPersonalEmail@me.com";
  var options = { htmlBody: BodyMsg, cc: emailCC, name: "Testing" };

  if(emailTo !== undefined){
    GmailApp.sendEmail(emailTo, subject, textBody, options);
  }  
}

Приведенный выше код получает две ошибки:

1) var emailTo = e.response.getRespondentEmail ( ); Возвращает следующую ошибку: TypeError: Невозможно прочитать свойство 'getRespondentEmail' с неопределенным значением в OnSubmit (код: 35: 28)

2) var itemResponses = e.response.getResponses (); Возвращает следующую ошибку: TypeError: Невозможно прочитать свойство 'getResponses' из неопределенного в OnSubmit (код: 9: 34)

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