Не удалось получить электронную почту активного пользователя

Я попытался записать электронную почту пользователя в целях отладки. Я использовал Session.getActiveUser().getEmail(). Я получил следующую ошибку.

Исключение: у вас нет разрешения на вызов Session.getActiveUser.getEmail (). Требуемые разрешения: https://www.googleapis.com/auth/userinfo.email

Поэтому я добавил в свой аддон область https://www.googleapis.com/auth/userinfo.email. Теперь я получаю следующую ошибку

У сценария нет разрешения на получение идентификатора активного пользователя.

Однако я не вижу ошибки, если запускаю ее в своей учетной записи (Gsuite) или у других пользователей в нашем домене. К вашему сведению: я владелец аддона.

Я пропустил какие-то прицелы?


person hhsb    schedule 21.12.2018    source источник


Ответы (3)


Замена getActiveUser() на getEffectiveUser(), похоже, заставляет его работать.

person hhsb    schedule 24.12.2018
comment
Вы знаете, почему getActiveUser () не работает? - person Hoang Trinh; 09.09.2019
comment
getEffectiveUser () получает пользователя, под чьей аутентификацией было опубликовано веб-приложение. Если вы хотите, чтобы Пользователь имел доступ к WebApp, вам нужно будет использовать getActiveUser (). - person Zuwaib Ansari; 22.10.2019

Я думаю, что лучшее объяснение можно найти в официальных документах. Контекст пользователей аддона не предполагает обязательной авторизации, и метод getEmail может возвращать пустую строку.

person Александр Ермол&    schedule 21.12.2018
comment
Ох, хорошо. Поскольку мы запрашиваем разрешения для электронной почты с использованием oauth, я подумал, что у нас должен быть доступ к их адресу электронной почты. - person hhsb; 21.12.2018

Ни getActiveUser(), ни getEffectiveUser() у меня не работали. В настоящее время возникла проблема с Google, и мне помогли некоторые предложения в этой теме:

(1) Попробуйте скопировать области из (Файл- ›Свойства проекта-› Области) в файл манифеста (Просмотр- ›Показать файл манифеста), следуя инструкциям: здесь.

(2) Проблема связана с новой средой выполнения сценария приложения на базе Chrome v8. Если (1) не работает (у меня это не сработало) - ›отключите среду выполнения сценария приложения следующим образом: (Выполнить -› Отключить среду выполнения сценария приложения на базе Chrome V8). Теперь проект будет работать с Apps Script Legacy, в котором нет этой проблемы.

Примечание. (2) применимо до тех пор, пока проблема не будет решена.

person Karishma Gulati    schedule 29.05.2020