getActiveUser () не возвращает пользователя?

Я только что впервые опубликовал свое дополнение в G Suite Marketplace: D

(Примерно через 2 недели Google опубликовал наш аддон сегодня)

И первое, что я заметил: Очень много ошибок :(

Хотя я очень тщательно тестировал свой код со связанным документом.

Ошибки, связанные с этой строкой кода:

Session.getActiveUser().getEmail()

Он всегда возвращает пустую строку, хотя у меня было разрешение OAuth для https://www.googleapis.com/auth/userinfo.email

Я предполагаю (но не уверен), что мне нужно вместо этого использовать эту функцию:

Session.getEffectiveUser().getEmail()

Я не могу быть уверен, потому что я обновил код и отправил новую версию в G Suite Marketplace, но Google еще не опубликовал ее (возможно, из-за того, что миграция из Addon Store в G Suite Marketplace все еще нестабильна)

Есть ли у вас опыт работы с Addon в G Suite Marketplace по этой проблеме?

Должен ли я все время использовать getEffectiveUser() вместо getActiveUser()?


РЕДАКТИРОВАТЬ:

Это контекст кода, запускающего Session.getActiveUser ():

  • После того, как пользователь принял разрешения OAuth
  • Боковая панель появилась
  • Клиентский код вызывает функцию X (которая вызывает Session.getActveUser ()) с использованием google.script.run.functionX...

Согласно этому руководству https://developers.google.com/gsuite/add-ons/concepts/editor-auth-lifecycle#authorization_modes, при использовании google.script.run AuthMode - ПОЛНЫЙ


person Hoang Trinh    schedule 09.09.2019    source источник
comment
Как указано в , это сильно зависит от контекста. Можете ли вы предоставить подробную информацию о контексте, в котором выполняется этот код? Для справки см. документацию по режимам авторизации. . Если код выполняется в контексте, где режим авторизации отличается от AuthMode.FULL, это объясняет возвращаемую пустую строку.   -  person chuckx    schedule 09.09.2019
comment
@chuckx: Спасибо. Я отредактировал свой вопрос, чтобы предоставить информацию о контексте   -  person Hoang Trinh    schedule 09.09.2019
comment
Вопросы, требующие помощи по отладке кода, должны включать минимальный воспроизводимый пример (в данном случае включают код на стороне сервера и на стороне клиента. )   -  person Rubén    schedule 09.09.2019


Ответы (1)


Как мы можем прочитать в getActiveUser() документации, вы получит пустую строку, если вы не можете получить доступ к информации о пользователе. Поскольку AuthMode может изменяться автоматически в некоторых ситуациях (как описано в документация по режимам авторизации), мы рекомендуем зарегистрировать его, чтобы проверить, включен ли он AuthMode.FULL или какой-либо другой режим. Надеемся, что это будет вам полезно. Пожалуйста, не стесняйтесь предлагать нам дополнительную информацию для дальнейшей помощи.

person Jacques-Guzel Heron    schedule 09.09.2019