2016-08-28 4 views
1

Мне нужно написать небольшое веб-приложение для бронирования, которое будет использоваться внутри компании, где я работаю. Я решил попробовать Скриншот Google Apps (GAS). Короче говоря, пользователь должен иметь возможность выбрать любое оборудование в списке и отправить его вместе с датой, которую он планирует использовать, и его идентификацией (эта небольшая система должна реализовать полный CRUD).Доступ к веб-приложению

Среда:

  • Google Spreadsheet в качестве базы данных
  • интерфейс, реализованный с GAS, опубликованной в Web App
  • приложение будет доступно только для членов домена компании, но я показывая его в моем личном аккаунте.

В среде разработки все работает нормально. Затем я развертываю его как веб-приложение для проекта (Execute app as: Me; у кого есть доступ к приложению: любой). Когда кто-либо связывает ссылку, я не могу получить информацию о пользователе (Session.getActiveUser(). GetEmail()). Он всегда извлекает информацию разработчика (моя информация). Если я переключу «Выполнять приложение как» на «Пользователь, получающий доступ к приложению», приложение не сможет получить доступ к электронной таблице, которая выполняет роль базы данных. В среде разработки это работает отлично.

Остальная часть веб-приложения работает нормально. Я просто хотел получить и записать личность (адрес электронной почты) того, кто сделал бронирование в автоматическом режиме (не попросив пользователя ввести эту информацию).

Должен ли я настроить что-то еще, прежде чем люди смогут получить к нему доступ?

Заранее спасибо.

[EDIT 1]: Ситуация изменилась немного. Я сделал еще несколько тестов, и кажется, что развернутое веб-приложение обновляется, когда я сохраняю его как новую версию в проекте. Во всяком случае, я все еще не могу получить активную электронную почту пользователя. Session.getActiveUser(). GetEmail() теперь возвращает пустую строку.

[EDIT 2]: После ответа Sujay Phadke bellow я попытался перевести веб-приложение в среду компании. Оно работало завораживающе.

Жулиано

ответ

1

Это хорошо документировано здесь: getActiveUser

Когда разрешения WebAPP установлены как «казнить, как мне», кажется, что возвращаемая строка идентификатора будет пустой. Это также зависит от ваших конкретных разрешений домена, как упоминалось там.

+0

Я только что прочитал ссылку @Sujay Phadke: «_ (...) адрес электронной почты пользователя не доступен ни в каком контексте, который позволяет скрипту работать без авторизации этого пользователя, как простой onOpen (e) или onEdit (e), пользовательская функция в Google Таблицах ** или веб-приложение, развернутое для «выполнения как меня» ** (то есть, разрешено разработчиком, а не пользователем). Однако ** эти ограничения в целом не применяются, если разработчик и пользователь принадлежат к одному и тому же домену Google Apps для бизнеса ** ._ ". – jpavel

+0

Я проведу тесты в среде компании, потому что я могу попросить администратора TI изменить политику безопасности, если это необходимо. Спасибо. – jpavel

+2

он будет работать в вашем домене, я без проблем использую ту же конфигурацию в Google Apps Education domain. Webapp работает как я, я использую 'Session.getActiveUser(). GetEmail()' для получения идентификатора enduser –

Смежные вопросы