Задать вопрос
@jesuswhyy
Мимо проходил

Как настроить логирование действий других пользователей?

Есть вот такой код:
function logs(e) {
  const sheetName = "Логи"; 
  const logSheet = e.source.getSheetByName(sheetName);

  if (!logSheet) {
    e.source.insertSheet(sheetName);
  }

  const currentTime = new Date(); 
  const user = e.user || Session.getActiveUser().getEmail() || "Аноним"; 
  const editedSheet = e.range.getSheet().getName(); 
  const action = `${e.range.getA1Notation()}: ${e.oldValue || "пусто"} -> ${e.value || "пусто"}`;

  logSheet.appendRow([currentTime, user, editedSheet, action]);
}


По-идее, он должен записывать действия всех пользователей в логи таблицы. Но определяет он только мой емейл (на скрине замазан), а остальных пользователей указывает как анонимов:
675925518c32a031827168.png

Есть способы обойти это ограничение?
  • Вопрос задан
  • 83 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
К сожалению, у Session.getActiveUser().getEmail() есть серьезные ограничения

getEmail() Получает адрес электронной почты пользователя, если он доступен. Если политики безопасности не разрешают доступ к адресу электронной почты пользователя, этот метод возвращает пустую строку. Обстоятельства, при которых адрес электронной почты доступен, различаются: например, адрес электронной почты пользователя недоступен ни в одном контексте, который позволяет скрипту запускаться без авторизации этого пользователя, например, простой триггер onOpen(e) или onEdit(e), пользовательские функции в Google Таблицах или веб-приложение, развернутое для "выполнения от моего имени" (то есть авторизованное разработчиком вместо пользователя). Однако эти ограничения, как правило, не применяются, если разработчик сам запускает скрипт или принадлежит к тому же домену Google Workspace, что и пользователь.

https://developers.google.com/apps-script/referenc...

Т.о. то, что вы запускаете, может отработать только в Googlw Workspace
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@TheIrishMan
Насколько мне известно, чтобы определить email, в таблицу нужно добавить пользователя по почте, а не по ссылке
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы