Если вы создаёте пользовательский интерфейс для скрипта, вы можете опубликовать его как веб-приложение. Например, скрипт, позволяющий пользователям планировать встречи с сотрудниками службы поддержки, лучше всего оформить в виде веб-приложения, чтобы пользователи могли получать к нему доступ непосредственно из браузера.
Как отдельные скрипты , так и скрипты, привязанные к Google Workspace приложения могут быть преобразованы в веб-приложения, если они соответствуют приведенным ниже требованиям.
Требования к веб-приложениям
Скрипт может быть опубликован как веб-приложение, если он соответствует следующим требованиям:
- Он содержит функцию
doGet(e)
илиdoPost(e)
. - Функция возвращает объект
HtmlOutput
службы HTML или объектTextOutput
службы контента .
Параметры запроса
Когда пользователь открывает приложение или программа отправляет приложению HTTP-запрос GET
, Apps Script запускает функцию doGet(e)
. Когда программа отправляет приложению HTTP-запрос POST
, Apps Script вместо этого запускает doPost(e)
. В обоих случаях аргумент e
представляет собой параметр события, который может содержать информацию о любых параметрах запроса. Структура объекта события представлена в таблице ниже:
Поля | |
---|---|
e.queryString | Значение части строки запроса URL-адреса или name=alice&n=1&n=2 |
e.parameter | Объект пар «ключ/значение», соответствующий параметрам запроса. Для параметров с несколькими значениями возвращается только первое значение. {"name": "alice", "n": "1"} |
e.parameters | Объект, аналогичный {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo | Путь URL после |
e.contextPath | Не используется, всегда пустая строка. |
e.contentLength | Длина тела запроса для запросов POST или 332 |
e.postData.length | То же, что и 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
}
Развернуть скрипт как веб-приложение
Чтобы развернуть скрипт как веб-приложение, выполните следующие действия:
- В правом верхнем углу проекта скрипта нажмите Развернуть > Новое развертывание .
- Рядом с пунктом «Выбрать тип» нажмите Включить типов развертывания > Веб-приложение .
- Введите информацию о вашем веб-приложении в поля в разделе «Конфигурация развертывания».
- Нажмите Развернуть .
Вы можете поделиться URL-адресом веб-приложения с теми, кто хотел бы использовать ваше приложение, при условии, что вы предоставили им доступ.
Тестирование развертывания веб-приложения
Чтобы протестировать свой скрипт как веб-приложение, выполните следующие действия:
- В правом верхнем углу проекта скрипта нажмите Развернуть > Тестовые развертывания .
- Рядом с пунктом «Выбрать тип» нажмите Включить типов развертывания > Веб-приложение .
- Под URL-адресом веб-приложения нажмите «Копировать» .
Вставьте URL-адрес в адресную строку браузера и протестируйте свое веб-приложение.
Этот URL-адрес заканчивается на
/dev
и доступен только пользователям с правами на редактирование скрипта. Этот экземпляр приложения всегда запускает последний сохранённый код и предназначен только для тестирования во время разработки.
Разрешения
Разрешения для веб-приложения различаются в зависимости от выбранного вами способа запуска приложения:
- Выполнить приложение от имени меня — в этом случае скрипт всегда будет выполняться от вашего имени, владельца скрипта, независимо от того, кто получает доступ к веб-приложению.
- Запустить приложение от имени пользователя, обращающегося к веб-приложению. В этом случае скрипт запускается от имени активного пользователя, использующего веб-приложение. Такой подход к разрешениям позволяет веб-приложению отображать адрес электронной почты владельца скрипта, когда пользователь разрешает доступ.
Встройте свое веб-приложение в Google Sites
Чтобы встроить веб-приложение в Google Сайты, его необходимо сначала развернуть . Вам также понадобится URL-адрес развёрнутого приложения из диалогового окна Deploy
.
Чтобы встроить веб-приложение на страницу сайта , выполните следующие действия:
- Откройте страницу «Сайты», на которую вы хотите добавить веб-приложение.
- Выберите Вставить > Встроить URL .
- Вставьте URL-адрес веб-приложения и нажмите ДОБАВИТЬ .
Веб-приложение отображается в рамке в предварительном просмотре страницы. При публикации страницы посетителям вашего сайта может потребоваться авторизация веб-приложения для его корректной работы. Неавторизованные веб-приложения выводят пользователю запросы на авторизацию.
Веб-приложения и история браузера
Веб-приложение Apps Script может быть желательным для имитации многостраничного приложения или приложения с динамическим пользовательским интерфейсом, управляемым параметрами URL. Для этого можно определить объект состояния, представляющий пользовательский интерфейс или страницу приложения, и сохранять его в истории браузера при навигации пользователя по приложению. Вы также можете отслеживать события истории, чтобы ваше веб-приложение отображало корректный пользовательский интерфейс при навигации пользователя с помощью кнопок браузера. Запрашивая параметры URL во время загрузки, вы можете динамически формировать пользовательский интерфейс приложения на основе этих параметров, позволяя пользователю запускать приложение в определённом состоянии.
Apps Script предоставляет два асинхронных клиентских API JavaScript для создания веб-приложений, связанных с историей браузера:
google.script.history
предоставляет методы для динамического реагирования на изменения истории браузера. Это включает в себя: добавление состояний (простых объектов, которые вы можете определить) в историю браузера, замену верхнего состояния в стеке истории и установку функции обратного вызова прослушивателя для реагирования на изменения истории.google.script.url
предоставляет средства для извлечения параметров URL текущей страницы и фрагмента URL, если они присутствуют.
Эти API истории доступны только для веб-приложений. Они не поддерживаются для боковых панелей, диалоговых окон и дополнений. Эту функциональность также не рекомендуется использовать в веб-приложениях, встроенных в Google Сайты .