Если вы создаете пользовательский интерфейс для сценария, вы можете опубликовать сценарий как веб-приложение. Например, сценарий, который позволяет пользователям планировать встречи с членами группы поддержки, лучше всего представить в виде веб-приложения, чтобы пользователи могли получить к нему доступ непосредственно из своих браузеров.
Как автономные сценарии, так и сценарии, привязанные к приложениям 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.
Чтобы встроить веб-приложение в Сайты Google, его необходимо сначала развернуть . Вам также понадобится развернутый URL-адрес из диалогового окна Deploy
.
Чтобы встроить веб-приложение на страницу Сайтов , выполните следующие действия:
- Откройте страницу Сайты, на которую вы хотите добавить веб-приложение.
- Выберите «Вставка» > «Встроить URL-адрес» .
- Вставьте URL-адрес веб-приложения и нажмите «ДОБАВИТЬ» .
Веб-приложение отображается в рамке предварительного просмотра страницы. Когда вы публикуете страницу, посетителям вашего сайта может потребоваться авторизовать веб-приложение, прежде чем оно будет нормально работать. Неавторизованные веб-приложения отправляют пользователю запросы на авторизацию.
Веб-приложения и история браузера
Может быть желательно, чтобы веб-приложение Apps Script имитировало многостраничное приложение или приложение с динамическим пользовательским интерфейсом, управляемым через параметры URL-адреса. Чтобы сделать это хорошо, вы можете определить объект состояния, который будет представлять пользовательский интерфейс или страницу приложения, и помещать состояние в историю браузера, когда пользователь перемещается по вашему приложению. Вы также можете прослушивать события истории, чтобы ваше веб-приложение отображало правильный пользовательский интерфейс, когда пользователь перемещается вперед и назад с помощью кнопок браузера. Запрашивая параметры URL-адреса во время загрузки, вы можете заставить свое приложение динамически создавать свой пользовательский интерфейс на основе этих параметров, позволяя пользователю запускать приложение в определенном состоянии.
Apps Script предоставляет два асинхронных API-интерфейса JavaScript на стороне клиента, которые помогают создавать веб-приложения, связанные с историей браузера:
google.script.history
предоставляет методы, позволяющие динамически реагировать на изменения истории браузера. Это включает в себя: добавление состояний (простых объектов, которые вы можете определить) в историю браузера, замену верхнего состояния в стеке истории и установку функции обратного вызова прослушивателя для реагирования на изменения истории.google.script.url
предоставляет средства для получения параметров URL-адреса текущей страницы и фрагмента URL-адреса, если они присутствуют.
Эти API истории доступны только для веб-приложений. Они не поддерживаются для боковых панелей, диалоговых окон и надстроек. Эту функцию также не рекомендуется использовать в веб-приложениях, встроенных в Сайты Google .