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

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

Как отдельные скрипты , так и скрипты, привязанные к 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.pathInfo

Путь URL после /exec или /dev . Например, если путь URL заканчивается на /exec/hello , информация о пути будет hello .

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 ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}

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

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

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

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

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

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

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

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

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

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

Разрешения

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

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

Встройте свое веб-приложение в Google Sites

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

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

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

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

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

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

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

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

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

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