スプレッドシート内で作成したWebアプリとしてスクリプトを展開しようとしています。Googleの指示に従い、バージョンの管理を行いましたが、アプリをデプロイしようとすると、最新のコードについてWebアプリをテストしようとすると、次のメッセージが表示されます。「未定義のドキュメントがありません(おそらく削除されましたか?)
スプレッドシートが存在することは知っています。コードの一部としてアプリのURLが必要なため、アプリをデプロイしています。メールで承認プロセスを自動化しようとしています。アプリをデプロイするときに、最新バージョンを選択し、このアプリを共有したいので「Webアプリにアクセスするユーザー」としてアプリを実行することを選択し、アプリにアクセスできるユーザーを「自分だけ」に設定しました。メールに送信したアプリの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;
}