@Xcomzbk75

Как получить почту любого пользователя изменившего таблицу?

Здравствуйте нужна помощь по GoogleAppsScript для таблиц!

Вопрос в следующем:
мне необходимо получить почту того кто изменил документ и у меня возникают следующие загвоздки — у меня записывается в документ почта, если документ изменяет создатель скрипта, но не записывается если документ изменяет просто редактор.
Если пробовать не через onEdit - а через настраиваемый триггер, тогда записывается почта только того кто создал триггер.
Пробовал различные вариации getActiveUser и getEffectiveUser - должного эффекта нету.
По итогу даже попробовал в манифест appsript.json внести строку "oauthScopes": ["https://www.googleapis.com/auth/userinfo.email" ] - насколько я понял из поисков по интернету связанных с данной проблемой, она включает разрешение на видимость почту судя по всему человека который будет редактировать.

Сейчас скрипт имеет следующий вид:
function onEdit(e) {
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let name = SpreadsheetApp.getActiveSheet().getName();
  let row = e.range.getRow();
  let col = e.range.getColumn();
  let value = e.source.getActiveSheet().getRange(row, 9).getValue();
  let date = Utilities.formatDate(new Date(), "GMT+3", "dd.mm.yyyy H:mm:ss");
  let email = Session.getEffectiveUser().getEmail();

  if (col == 9 && name == "Нужный лист") {
    sheet.getRange(row, 1).setValue(date);
    sheet.getRange(row, 2).setValue(email);
  }
}


ПОМОГИТЕ ЛЮДИ ДОРЫЕ!
  • Вопрос задан
  • 539 просмотров
Пригласить эксперта
Ответы на вопрос 1
BasiC2k
@BasiC2k
.NET developer (open to job offers)
var sUser = Session.getActiveUser().getEmail() || Session.getEffectiveUser().getEmail();


это у меня вполне работает.
Возможно причина в том, что доступ к документу у Вас включен для всех имеющих ссылку, а стОит включить для определённых пользователей (по email)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы