У меня есть форма Google, которая отправляет автоматические триггеры электронной почты через Google Apps Script на основе функции onFormSubmit (). В этом письме есть одна ссылка, которая инициирует открытие страницы index.html. На странице index.html есть 2 ссылки для подтверждения (одобрить / отклонить), и после нажатия на любую из ссылок для подтверждения она отправляет уведомление по электронной почте заявителю.
Пример кода:
code.gs
function onFormSubmit(e) {
// Capture Data
var values = e.namedValues;
var name = values['Name'];
var email = values['Email'];
var url = 'my-web-app-url';
var htmlBody = var htmlBody = '<ul>';
htmlBody += '<li>' + 'Name: ' + name + '</li>';
htmlBody += '<li>' + 'Email: ' + period + '</li>';
htmlBody += '</ul>';
// Link to open HTML page
var open = url + '?approval=open' + '&reply=' + email + '&name=' + name;
var messageBody = 'Hi ' + ', <br><br>' +
'You have received a new form submission that requires your approval.<br><br>' + '<a href='+ open + '>Open Link</a>';
// Sends email to Reporting Officer
MailApp.sendEmail({
to: 'test@example.com',
subject: 'Approval Required',
htmlBody: messageBody
});
}
function doGet(e) {
// Capture Applicant's Data
var name = e.parameter.name;
var email = e.parameter.reply;
var approval = e.parameter.approval;
if (approval == 'open') {
// Renders HTML
return HtmlService.createHtmlOutputFromFile('index');
} else {
// If approval is 'true' or 'false', notify applicant
var emailBody = 'Dear ' + name + ', <br><br>' +
'Your application has been approved.';
MailApp.sendEmail({
to: email,
subject: 'Application Approved',
htmlBody: emailBody
});
}
}
function generateMessage() {
var name = e.parameter.name
var approval = e.parameter.approval
if (approval = 'true') {
var msg = "You have approved " + name + "'s application. An email has been sent to him/her.";
} else {
var msg = "You have rejected " + name + "'s application. An email has been sent to him/her."
}
return msg;
}
function generateApprovalLinks() {
if (approval == 'open') {
// Links to Approve / Reject
var approve = url + '?approval=true' + '&reply=' + email + '&name=' + name;
var reject = url + '?approval=false' + '&reply=' + email + '&name=' + name;
return approve;
return reject;
}
}
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
google.script.run.generateMessage();
google.script.run.generateApprovalLinks();
document.getElementById("msg").innerHTML = msg;
</script>
</head>
<body>
<section class="hero">
<div class="hero-body">
<div class="container">
<h1 class="title">Success</h1>
<p id="msg"></p>
<!-- Add an input field to capture remarks -->
<label name="remarks">Remarks: </label>
<input type="text" name="remarks">
<!-- Output approval links -->
<script type="text/javascript">
document.write(approve);
document.write(reject);
</script>
<!-- But how do I send this data back as parameter in my url? -->
</div>
</div>
</section>
</body>
</html>
Однако вместо того, чтобы щелкать ссылку одобрения / отклонения непосредственно в электронном письме триггера, я хотел бы разрешить «утверждающему человеку» включать некоторые текстовые замечания, добавляя поле ввода текста в вывод HTML . Кроме того, я хотел бы переместить эту ссылку подтверждения на ту же страницу вывода HTML, где пользователь затем может отправить свои замечания в качестве параметров url обратно в функцию doGet () в скрипте приложений , где я могу включить замечания в электронное письмо, которое отправляется пользователю.
Возможно ли это, и есть ли у кого-нибудь предложения о том, как мне поступить?