我正在編寫一個Google Apps腳本,用於將Google Drive中的文件發送到保存在Google Spreadsheet中的電子郵件地址列表。如何獲取Google Drive文件的ID值以便輸入到Google Apps腳本
由於每次使用腳本時我都會發送一個不同的文件,因此我設置了我的腳本以將文件ID作爲用戶的文本輸入。我看到直接從雲端硬盤獲取ID的唯一方法是右鍵單擊該文件,選擇「獲取鏈接」,將其複製到剪貼板,粘貼到我的表單中並擦除不是ID的位。我在寫信詢問有沒有人知道更好的方法。我也樂於提出建議更好的程序設計的意見。
function sendEmails() {
var id = "gibberish"; //email spreadsheet
SpreadsheetApp.openById(id);
var sheet = SpreadsheetApp.getActiveSheet();
Logger.log(sheet.getName());
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 2);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
//Get subject line from user
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Enter subject: ', ui.ButtonSet.OK_CANCEL);
var subject;
// Process the user's response. TODO- error checking
if (response.getSelectedButton() == ui.Button.OK) {
subject = response.getResponseText();
} else {
Logger.log('The user either canceled or clicked the close button in the dialog\'s title bar.');
subject = "No subject";
}
//get id for attachment file
var ui2 = SpreadsheetApp.getUi();
var response2 = ui2.prompt('Enter Drive id for attachment: ', ui.ButtonSet.OK_CANCEL); //TODO- error checking
var attachmentID;
var file = null;
if (response2.getSelectedButton() == ui.Button.OK) {
attachmentID = response2.getResponseText();
file = DriveApp.getFileById(attachmentID);
Logger.log('The user entered %s', response2.getResponseText());
} else {
Logger.log('The user either canceled or clicked the close button in the dialog\'s title bar.');
}
for (i in data) {
var row = data[i];
var emailAddress = row[0]; // First column
var message = "Time Sheet attached. \n\n -Jessica";
if (file != null) { //TODO- or if file is right file
MailApp.sendEmail(emailAddress, subject, message, {attachments: [file]});
} else {
Logger.log("No file was attached. Email not sent.");
}
}
}
http://stackoverflow.com/questions/25180042/load-file-from-google-drive-into-a-form-using-apps-script看起來像一個更好的設計。我會玩這個。還會欣賞其他答案/評論 – jgloves