Я пытаюсь написать систему запросов на отпуск и скопировал код из других примеров, чтобы добраться туда, где я нахожусь.
Самая большая проблема, с которой я столкнулся, - это doGet
, кажется, не может читать параметры. Если я вставляю параметры в код, он работает нормально, но когда я пытаюсь передать переменные с помощью ссылки https, это не работает. Есть идеи?
Я опубликовал его как веб-приложение и предоставил доступ к нему всем в моем домене.
Вот https-ссылка: https://script.google.com/a/olemissalumni.com/macros/s/mywebappURL/exec?id=2_ABaOnue6Zr2ADAQPNUo-NdwmIgOL-J4Gk9H6ihNVkqZwLs2ubWh_0SaXYdllDpb_1r6AyCA&status=Approved
Вот функция триггера doGet
.
function doGet(e) {
//testing variables
// var responseID = '2_ABaOnue6Zr2ADAQPNUo-NdwmIgOL-J4Gk9H6ihNVkqZwLs2ubWh_0SaXYdllDpb_1r6AyCA';
// var status = 'Approved';
// Retrieve the parameter information for response ID and status
var responseID = e.parameters.id;
var status = e.parameters.status;
// Open the sheet which stores the responses
var ssID = 'spreadsheet id' // Replace with spreadsheet ID
var ssName = 'Form Responses' // Replace with sheet name
var sheet = SpreadsheetApp.openById(ssID).getSheetByName(ssName);
// Find the row where the ID in the URL equals the ID in the sheet and update the
// status to the parameter value
var data = sheet.getDataRange().getValues();
Logger.log('Email' + data[1][1]);
Logger.log('type' + data[1][9]);
//console.log(data);
for (var i = 0; i < data.length; i++) {
if (data[i][11] == responseID) {
sheet.getRange(i, 12, 1, 1).setValue(status);
var date = Utilities.formatDate(data[i][0], "GMT+0200", "EEE, MMM d, yyyy");
var type = data[i][10];
var email = data[i][1]; //get the actual email address of the person who filled out the e
sheet.getRange(i, 13, 1, 1).setValue(email);
}
}
if (status == 'Approved') {
var subject = 'Your e for time-off has been approved';
var message = 'Your e for time-off (' + type + ') on ' + date + ' has been approved.';
} else {
var subject = 'Your e for time-off has been denied';
var message = 'Your e for time-off (' + type + ') on ' + date + ' has been denied.';
}
// Send email to employee alerting them of the approval/denial of e
MailApp.sendEmail(email, subject, message);
// Show message to manager that the response has been updated.
var result = "The e has been '" + status + "'.";
return ContentService.createTextOutput(result);
}