Веб-приложения

Если вы создаете пользовательский интерфейс для сценария, вы можете опубликовать сценарий как веб-приложение. Например, сценарий, который позволяет пользователям планировать встречи с членами группы поддержки, лучше всего представить в виде веб-приложения, чтобы пользователи могли получить к нему доступ непосредственно из своих браузеров.

Как автономные скрипты, так и скрипты, привязанные к приложениям Google Workspace , можно превратить в веб-приложения, если они соответствуют приведенным ниже требованиям.

Требования к веб-приложениям

Сценарий может быть опубликован как веб-приложение, если он соответствует следующим требованиям:

Параметры запроса

Когда пользователь посещает приложение или программа отправляет приложению HTTP- GET , Apps Script запускает функцию doGet(e) . Когда программа отправляет приложению HTTP-запрос POST , вместо этого Apps Script запускает doPost(e) . В обоих случаях аргумент e представляет собой параметр события, который может содержать информацию о любых параметрах запроса. Структура объекта события показана в таблице ниже:

Поля
e.queryString

Значение части строки запроса URL-адреса или null , если строка запроса не указана.

name=alice&n=1&n=2
e.parameter

Объект пар ключ/значение, соответствующих параметрам запроса. Для параметров, имеющих несколько значений, возвращается только первое значение.

{"name": "alice", "n": "1"}
e.parameters

Объект, аналогичный e.parameter , но с массивом значений для каждого ключа.

{"name": ["alice"], "n": ["1", "2"]}
e.contextPath Не используется, всегда пустая строка.
e.contentLength

Длина тела запроса для запросов POST или -1 для запросов GET.

332
e.postData.length

То же, что и e.contentLength

332
e.postData.type

MIME-тип тела POST

text/csv
e.postData.contents

Текст содержимого тела POST

Alice,21
e.postData.name

Всегда значение "postData"

postData

Например, вы можете передать такие параметры, как username и age , в URL-адрес, как показано ниже:

https://script.google.com/.../exec?username=jsmith&age=21

Затем вы можете отобразить параметры следующим образом:

function doGet(e) {
  var params = JSON.stringify(e);
  return HtmlService.createHtmlOutput(params);
}

В приведенном выше примере doGet(e) возвращает следующий результат:

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

Разверните скрипт как веб-приложение

Чтобы развернуть скрипт как веб-приложение, выполните следующие действия:

Новый редактор

  1. В правом верхнем углу проекта сценария щелкните Развернуть > Новое развертывание .
  2. Рядом с пунктом «Выберите тип» щелкните Включить типов развертывания > Веб-приложение .
  3. Введите информацию о своем веб-приложении в поля в разделе «Конфигурация развертывания».
  4. Щелкните Развернуть .

Устаревший редактор

  1. Сохраните новую версию скрипта, выбрав « Файл» > «Управление версиями », а затем « Сохранить новую версию» .
  2. Выберите Опубликовать > Развернуть как веб-приложение .
  3. В разделе Версия проекта выберите версию, которую вы только что сохранили.
  4. В разделе «Выполнить приложение как » выберите, с какой авторизацией должно запускаться приложение: ваша учетная запись (разработчика) или учетная запись пользователя, который посещает приложение (см. разрешения ).
  5. В разделе Кто имеет доступ к приложению выберите, кому будет разрешено посещать его. Варианты различаются в зависимости от типа вашей учетной записи, но они могут включать «Только я», любой член вашего домена, «Любой» (с учетной записью Google) или «Любой, даже анонимный».
  6. Щелкните Развернуть .

После развертывания веб-приложения появится диалоговое окно, подтверждающее развертывание и предоставляющее развернутый URL-адрес. Этот URL-адрес заканчивается на /exec и предназначен для развернутой версии вашего приложения на основе последней версии, которую вы сохранили и развернули.

Вы можете поделиться URL-адресом веб-приложения с теми, кому хотите использовать ваше приложение, при условии, что вы предоставили им доступ.

Протестируйте развертывание веб-приложения

Новый редактор

Чтобы протестировать скрипт как веб-приложение, выполните следующие действия:

  1. В правом верхнем углу проекта скрипта щелкните Развернуть > Тестовые развертывания .
  2. Рядом с пунктом «Выберите тип» щелкните Включить типов развертывания > Веб-приложение .
  3. Под URL-адресом веб-приложения нажмите Копировать .
  4. Вставьте URL-адрес в браузер и протестируйте свое веб-приложение.

Этот URL-адрес заканчивается на /dev , и доступ к нему могут получить только пользователи, имеющие доступ к редактированию сценария. Этот экземпляр приложения всегда запускает последний сохраненный код и предназначен только для тестирования во время разработки.

Устаревший редактор

После развертывания веб-приложения диалоговое окно, подтверждающее развертывание, содержит ссылку для тестирования последней версии кода. Этот URL-адрес заканчивается на /dev , и доступ к нему могут получить только пользователи, имеющие доступ к редактированию сценария. Этот экземпляр приложения всегда запускает самый последний сохраненный код — не обязательно формальную версию — и предназначен для тестирования во время разработки.

Разрешения

Разрешения для веб-приложения различаются в зависимости от того, как вы решите запустить приложение:

  • Выполнять приложение от имени меня — в этом случае сценарий всегда выполняется от имени владельца сценария, независимо от того, кто обращается к веб-приложению.
  • Выполнение приложения от имени пользователя, получающего доступ к веб-приложению. В этом случае сценарий запускается от имени активного пользователя, использующего веб-приложение. Этот подход с разрешениями заставляет веб-приложение отображать адрес электронной почты владельца скрипта, когда пользователь авторизует доступ.

Встраивание вашего веб-приложения в Сайты Google

Вы также можете встраивать веб-приложения как в классическую , так и в новую версию Сайтов Google .

Встраивание веб-приложения в новые Сайты

Чтобы внедрить веб-приложение, его необходимо сначала развернуть . Вам также потребуется развернутый URL -адрес из диалогового окна Deploy .

Чтобы внедрить веб-приложение на новую страницу Сайтов , выполните следующие действия.

  1. Откройте страницу Сайты, на которую вы хотите добавить веб-приложение.
  2. Выберите «Вставить» > «Встроить URL-адрес» .
  3. Вставьте URL-адрес веб-приложения и нажмите ДОБАВИТЬ .

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

Встраивание веб-приложения в классические Сайты

Вы можете привязать сценарий к классическому сайту Google почти так же, как вы можете привязать сценарий к документу или таблице Google. Чтобы создать связанный скрипт, зайдите на свой сайт, щелкните значок шестеренки. Настройки , затем выберите Управление сайтом . На странице «Управление сайтом» нажмите « Сценарии приложений » в левой навигационной панели, затем нажмите кнопку « Добавить новый скрипт ». Откроется новый скрипт в редакторе скриптов приложений, где вы сможете закодировать и развернуть свое веб-приложение.

Вы также можете встроить свое веб-приложение на страницу. Вы можете привязать веб-приложение к сайту или использовать любое веб-приложение, для которого у вас есть URL-адрес. Чтобы встроить веб-приложение на страницу Сайтов Google, выполните следующие действия:

  1. Откройте существующий сайт, для которого у вас есть права на редактирование, или создайте новый сайт.
  2. Перейдите на страницу своего сайта, на которую вы хотите встроить веб-приложение.
  3. Щелкните значок редактирования, а затем выберите Вставить > Сценарий Google Apps .
  4. Выберите сценарий из списка, который представляет ваше веб-приложение. Если ваше веб-приложение не привязано к этому сайту, вместо этого вы можете вставить URL-адрес веб-приложения.
  5. Нажмите кнопку « Выбрать », выберите нужные параметры в следующем диалоговом окне и нажмите « Сохранить ».
  6. Сохраните изменения на странице, после чего вы должны увидеть свое веб-приложение, встроенное в страницу Сайтов.

Веб-приложения и история браузера

Может быть желательно, чтобы веб-приложение Apps Script имитировало многостраничное приложение или приложение с динамическим пользовательским интерфейсом, управляемым с помощью параметров URL. Чтобы сделать это хорошо, вы можете определить объект состояния для представления пользовательского интерфейса или страницы приложения и помещать состояние в историю браузера по мере того, как пользователь перемещается по вашему приложению. Вы также можете прослушивать события истории, чтобы ваше веб-приложение отображало правильный пользовательский интерфейс, когда пользователь перемещается вперед и назад с помощью кнопок браузера. Запрашивая параметры URL-адреса во время загрузки, вы можете динамически создавать пользовательский интерфейс вашего приложения на основе этих параметров, позволяя пользователю запускать приложение в определенном состоянии.

Apps Script предоставляет два асинхронных API-интерфейса JavaScript на стороне клиента, которые помогают создавать веб-приложения, связанные с историей браузера:

  • google.script.history предоставляет методы, позволяющие динамически реагировать на изменения в истории браузера. Это включает в себя: добавление состояний (простых объектов, которые вы можете определить) в историю браузера, замену верхнего состояния в стеке истории и настройку функции обратного вызова слушателя для реагирования на изменения истории.

  • google.script.url предоставляет средства для получения параметров URL-адреса текущей страницы и фрагмента URL-адреса, если они присутствуют.

Эти API истории доступны только для веб-приложений. Они не поддерживаются для боковых панелей, диалоговых окон или надстроек. Эту функцию также не рекомендуется использовать в веб-приложениях, встроенных в Сайты Google .