#google-apps-script #google-sheets #autocomplete #event-handling #switch-statement
Вопрос:
Я хочу автоматически обновлять автора в поле «Автор» в файле Google Sheet, когда автор отправляет URL-адрес содержимого в файл. В основном я получу электронное письмо активного пользователя (автора) и обновлю фиксированное имя с помощью данного электронного письма в поле.
Это мой код, но он не работает.
Может ли кто-нибудь понять, почему это не работает для меня. Спасибо
function onEdit(e){
var row = e.range.getRow();
Logger.log(row);
//var actSpreadsheet = e.source.getActiveSpreadsheet();
var actSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
//actSpreadsheet.getActiveSheet().getRange(row,4).setValue("Content nào đó");
//Logger.log(e.value);
if (Session.getActiveUser().getEmail() == "vulinh246@gmail.com")
{
Logger.log("Content 1 đang đăng nhập");
actSpreadsheet.getActiveSheet().getRange(row,4).setValue("Content 1");
}
/* var textlog = Session.getActiveUser().getEmail();
Logger.log( textlog); */
var textlog = Session.getActiveUser().getEmail();
switch(textlog){
case "linh.kcnamata@gmail.com":
Logger.log("Content 1 đang đăng nhập");
actSpreadsheet.getActiveSheet().getRange(row,3).setValue(Utilities.formatDate(new Date(), "GMT 1", "dd/MM/yyyy") );
actSpreadsheet.getActiveSheet().getRange(row,4).setValue("Content 1");
break;
case "thanlinh246@gmail.com":
Logger.log("Content 2 đang đăng nhập");
actSpreadsheet.getActiveSheet().getRange(row,3).setValue(Utilities.formatDate(new Date(), "GMT 1", "dd/MM/yyyy") );
actSpreadsheet.getActiveSheet().getRange(row,4).setValue("Content 2");
break;
case "vulinh246@gmail.com":
Logger.log("Content 4 đang đăng nhập");
actSpreadsheet.getActiveSheet().getRange(row,3).setValue(Utilities.formatDate(new Date(), "GMT 1", "dd/MM/yyyy") );
actSpreadsheet.getActiveSheet().getRange(row,4).setValue("Content 4");
break;
}
}
Ответ №1:
Session.getActiveUser() требует разрешения. Область действия https://www.googleapis.com/auth/userinfo.email
триггера onEdit() является простым триггером и не может выполнять функции, требующие разрешения.
Комментарии:
1. Не могли бы вы рассказать мне, как запускать функции, требующие разрешения ?
2. Дополнительная информация: все предустановленные пользователи, которых я использовал в своем файле Google Sheet, имели разрешение.
3. Вам нужно использовать устанавливаемый триггер. Вы можете создавать программно (проверьте документацию) или использовать меню триггера из редактора