0

Я это Google Apps Script, чтобы отправить письмо с просьбой к людям я выбираю в таблице:Как использовать кнопку подтверждения в встроенных скриптах Google Apps Script?

function sendRequestEmail() { 
    var data = SpreadsheetApp.openById(SPREADSHEET); 
    if(!employee_ID) { 
    employee_ID = getCurrentRow(); 
    if (employee_ID == 1) { 
     var employee_ID = Browser.inputBox("Você precisa selecionar um assistido?", "Choose a row or type its number here:", Browser.Buttons.OK_CANCEL); 
    } 
    } 

    // Fetch variable names 
    // they are column names in the spreadsheet 
    var sheet = data.getSheets()[0]; 
    var columns = getRowAsArray(sheet, 1); 
    Logger.log("Processing columns =" + columns); 
    var employeeData = getRowAsArray(sheet, employee_ID); 
    Logger.log("Processing employeeData = " + employeeData); 
    // Assume first column holds the name of the person 
    var email2Send = "[email protected]"; 
    var title = "Request by email"; 
    var name = employeeData[0]; 
    var mother_name = employeeData[1]; 
    var message = "Hi, I have a request for you, " + name + ", this is... example"; 
    // HERE THE 
    // CONFIRMATION BUTTON!!!      
    MailApp.sendEmail(email2Send, title, message); 
    } 

И, прежде чем отправить письмо, я хочу кнопку подтверждения, что-то вроде этого:

function showConfirmation(name, email2Send) { 
    var app = UiApp.createApplication().setHeight(150).setWidth(250); 
    var msg = "Do you confirm the request to " + email2Send + " about " + name + "?"; 
    app.setTitle("Confirmation of request");  
    app.add(app.createVerticalPanel().add(app.createLabel(msg))); 
    var doc = SpreadsheetApp.getActive(); 
    doc.show(app); 
    } 

Таким образом, если пользователь нажмет OK, приложение выполнит строку MailApp.sendEmail(email2Send, title, message); и отправит электронное письмо.

Должен признать свое невежество. Я читаю главу 4 книги «Скрипт Google Apps» (Oreilly, Джеймс Феррейра) о обработчиках. Я попытался использовать пример, указанный в документации от Google (уже удалил код!). Но я наткнулся на ошибку, которую я не мог понять.

Код Использовался этот пример:

var ui = DocumentApp.getUi(); 
var response = ui.prompt('Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO); 
// Process the user's response. 
if (response.getSelectedButton() == ui.Button.YES) ... DO THIS 

У меня есть необходимость в этом простом проекте, так что простите меня, за этот вопрос до исследования больше для ответа (я ищу для него в то время как поклонников для ответа). Итак, как я могу использовать кнопку подтверждения/отмены в этом коде?

СПАСИБО за любую помощь!

ответ

2

Код фрагмента кода вы показали для документов встроенный интерфейс, эквивалент (ну ... почти) класс для контекста таблицы является Browser.MsgBox(prompt,buttons) см док here, это будет проще, чем создать Ui + функцию обработчика ... даже если макет и внешний вид достаточно просты, это легко и эффективно.

В своем коде становится:

... 
    var confirm = Browser.msgBox('send confirmation','Are you sure you want to send this mail ?', Browser.Buttons.OK_CANCEL); 
    if(confirm=='ok'){ MailApp.sendEmail(email2Send, title, message)}; 
    ... 
Смежные вопросы