我正在尝试将我的脚本部署为我在电子表格中创建的 Web 应用程序。我已按照 google 的说明处理了版本管理问题,但是当我尝试部署应用程序时,当我尝试为我的最新代码测试网络应用程序时收到以下消息:“缺少未定义的文档(也许它已被删除?)
我知道电子表格存在。我正在部署应用程序,因为我需要应用程序 URL 作为我的代码的一部分。我正在尝试通过电子邮件自动化审批流程。部署应用程序时,我选择了最新版本,选择以“用户访问网络应用程序”的身份执行应用程序,因为我想共享此应用程序,并将谁可以访问该应用程序设置为“只有我自己”。当我单击发送到我的电子邮件的应用程序 URL 时,我还被告知“您请求的页面(或文档)不存在”。
我对此很陌生。我按照本教程获得了我所拥有的:http: //youtu.be/K2uLzJdEVCA
然而,在视频中,它不称为部署 Web 应用程序,而是称为发布脚本。我想这是新的东西。无论如何,我需要应用程序 URL。
这是我的代码,以防其中有缺陷。
function approve() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('Editors');
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
var row = data[i];
var fName = row[1];
var lName = row[2];
var email = row[3];
var approved = row[4];
var notified = row[5];
if(approved.toLowerCase() == 'yes' && notified.toLowerCase() != 'yes'){
GmailApp.sendEmail(email, "Request Approved: CI&W Community Edit Permission", "You may now make edits to the site!") ;
data[i][5]= 'yes';
}
}
sheet.getDataRange().setValues(data);
}
function onOpen() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
spreadsheet.addMenu('Functions', [
{ name: 'Approve', functionName: 'approve' }
]);
}
function onFormSub(event) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('Editors');
var fName = event.namedValues["First Name"];
var lName = event.namedValues["Last Name"];
var email = event.namedValues["Email"];
var url = 'I paste in the app URL i am given here';
url += '&spreadsheetId=' + spreadsheet.getId();
url += '&row=' + sheet.getLastRow();
Browser.msgBox(spreadsheet.getId())
var message = 'Name: ' + fName + ' ' + lName + '\nEmail: ' + email + '\nApprove: ' + url;
MailApp.sendEmail('fakeemail@gmail.com', 'New Edit Request: CI&W', message);
}
function doGet(event) {
var spreadsheetId = event.parameter['spreadsheetId'];
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var sheet = spreadsheet.getSheetByName('Editors');
var row = event.parameter['row'];
sheet.getRange(row,5).setValue('yes');
var app = UiApp.createApplication();
var label = app.createLabel();
label.setText('The request was approved');
app.add(label);
return app;
}