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

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

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

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

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

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

Когда пользователь посещает приложение или программа отправляет приложению 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.

Чтобы встроить веб-приложение в Сайты 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 .

,

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

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

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

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

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

Когда пользователь посещает приложение или программа отправляет приложению 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.

Чтобы встроить веб-приложение в Сайты 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 .