Активный пользователь объекта события onEdit возвращает мой адрес электронной почты вместо того, чтобы пользователь делал правку - PullRequest
0 голосов
/ 10 мая 2019

У меня есть лист Google с установленным скриптом триггера / приложения. Скрипт использует объект события (я называю это e), чтобы делать разные вещи. Я пытаюсь получить адрес электронной почты пользователя, который редактирует листы Google. Таким образом, если объектом события является e, пользователь e.user должен вернуть идентификатор пользователя / адрес электронной почты человека, вошедшего в лист Google и выполняющего действие. Но вместо этого он возвращает мой адрес электронной почты. Я предполагаю, что идентификатор e.user - это идентификатор пользователя, под которым выполняется скрипт приложения. Может ли кто-нибудь из инженеров Google вмешаться? Как я могу получить идентификатор пользователя, который выполняет редактирование?

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Хорошо, вау, я наконец заработал, и это было странно.Итак, если триггер устанавливается, а не простой, и пользователи, выполняющие редактирование, принадлежат моему домену, тогда e.user должен работать.Не былоВ конце концов я понял, что когда один из общих соавторов открывает редактор сценариев приложений из контейнера, по какой-то причине все начинает работать.Итак, теперь я могу получать идентификаторы пользователей и электронные письма от всех пользователей в моем домене, когда они выполняют действие.Кажется, это ошибка.Я не знаю.Но это работает сейчас.

0 голосов
/ 10 мая 2019

Вы можете получить электронную почту пользователя с помощью e.user.getEmail();

Вот комментарий к документации:

getEmail ()

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...