Aplicaciones web

Si compilas una interfaz de usuario para una secuencia de comandos, puedes publicarla como una aplicación web. Por ejemplo, una secuencia de comandos que permite a los usuarios programar citas con miembros de un equipo de asistencia se presenta como una aplicación web para que los usuarios puedan acceder a ella directamente desde sus navegadores.

Tanto las secuencias de comandos independientes como las secuencias de comandos vinculadas a Google Workspace aplicaciones se pueden convertir en aplicaciones web, siempre que cumplan con los requisitos que se indican a continuación.

Requisitos para aplicaciones web

Una secuencia de comandos se puede publicar como una aplicación web si cumple con los siguientes requisitos:

parámetros de solicitud

Cuando un usuario visita una app o un programa envía a la app una solicitud HTTP GET, Apps Script ejecuta la función doGet(e). Cuando un programa envía una solicitud HTTP POST a la app, Apps Script ejecuta doPost(e) en su lugar. En ambos casos, el argumento e representa un parámetro de evento que puede contener información sobre cualquier parámetro de solicitud. La estructura del objeto de evento se muestra en la siguiente tabla:

Campos
e.queryString

El valor de la parte de la cadena de consulta de la URL, o null si no se especifica una cadena de consulta

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

Un objeto de pares clave-valor que corresponde a los parámetros de la solicitud. Solo se muestra el primer valor para los parámetros que tienen varios valores.

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

Un objeto similar a e.parameter, pero con un array de valores para cada clave

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

La ruta de URL después de /exec o /dev. Por ejemplo, si la ruta de URL termina en /exec/hello, la información de la ruta es hello.

e.contextPath No se usa. Siempre está vacía.
e.contentLength

La longitud del cuerpo de la solicitud para las solicitudes POST o -1 para las solicitudes GET

332
e.postData.length

Es igual a e.contentLength

332
e.postData.type

El tipo de MIME del cuerpo de POST

text/csv
e.postData.contents

El texto del contenido del cuerpo de POST

Alice,21
e.postData.name

Siempre se usa el valor "postData"

postData

Por ejemplo, puedes pasar parámetros como username y age a una URL como se muestra a continuación:

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

Luego, puedes mostrar los parámetros de la siguiente manera:

function doGet(e) {
  var params = JSON.stringify(e);
  return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}

En el ejemplo anterior, doGet(e) muestra el siguiente resultado:

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

Implementa una secuencia de comandos como una app web

Para implementar una secuencia de comandos como una aplicación web, sigue estos pasos:

  1. En la esquina superior derecha del proyecto de la secuencia de comandos, haga clic en Implementar > Nueva implementación.
  2. Junto a “Seleccionar tipo”, haz clic en Habilitar tipos de implementación > Aplicación web.
  3. Ingresa la información sobre tu app web en los campos en “Configuración de la implementación”.
  4. Haz clic en Implementar.

Puedes compartir la URL de la app web con quienes desees que usen tu app, siempre que les hayas otorgado acceso.

Prueba una implementación de app web

Para probar tu secuencia de comandos como una aplicación web, sigue estos pasos:

  1. En la parte superior derecha del proyecto de la secuencia de comandos, haz clic en Implementar > Implementaciones de prueba.
  2. Junto a “Seleccionar tipo”, haz clic en Habilitar tipos de implementación > Aplicación web.
  3. En la URL de la app web, haz clic en Copiar.
  4. Pega la URL en tu navegador y prueba tu aplicación web.

    Esta URL termina en /dev y solo pueden acceder a ella los usuarios que tengan acceso de edición a la secuencia de comandos. Esta instancia de la app siempre ejecuta el código guardado más reciente y solo está diseñada para realizar pruebas durante el desarrollo.

Permisos

Los permisos para una app web difieren según cómo elijas ejecutarla:

  • Ejecuta la app como yo: En este caso, la secuencia de comandos siempre se ejecuta como tú, el propietario de la secuencia de comandos, sin importar quién acceda a la aplicación web.
  • Ejecuta la app como un usuario que accede a la aplicación web: En este caso, la secuencia de comandos se ejecuta bajo la identidad del usuario activo que usa la aplicación web. Este enfoque de permisos hace que la app web muestre el correo electrónico del propietario de la secuencia de comandos cuando el usuario autoriza el acceso.

Incorpora tu aplicación web en Google Sites

Para incorporar una aplicación web en Google Sites, primero se debe implementar. También necesitas la URL implementada del cuadro de diálogo Deploy.

Para incorporar una app web en una página de Sites, sigue estos pasos:

  1. Abre la página de Sites en la que quieras agregar la aplicación web.
  2. Selecciona Insertar > Incorporar URL.
  3. Pega la URL de la app web y, luego, haz clic en AGREGAR.

La app web aparece en un marco en la vista previa de la página. Cuando publicas la página, es posible que los visitantes del sitio deban autorizar la aplicación web antes de que se ejecute normalmente. Las aplicaciones web no autorizadas presentan mensajes de autorización al usuario.

Historial del navegador y aplicaciones web

Puede ser conveniente que una app web de Apps Script simule una aplicación de varias páginas o una con una IU dinámica controlada a través de parámetros de URL. Para hacerlo bien, puedes definir un objeto de estado que represente la página o la IU de la app y enviar el estado al historial del navegador a medida que el usuario navega por ella. También puedes escuchar eventos del historial para que tu app web muestre la IU correcta cuando el usuario navegue con los botones del navegador hacia adelante y atrás. Si consultas los parámetros de URL en el tiempo de carga, puedes hacer que la app compile su IU de forma dinámica en función de esos parámetros, lo que le permite al usuario iniciar la app en un estado determinado.

Apps Script proporciona dos APIs de JavaScript del cliente asíncronas para ayudar a crear apps web vinculadas al historial del navegador:

  • google.script.history proporciona métodos para permitir una respuesta dinámica a los cambios en el historial del navegador. Esto incluye lo siguiente: enviar estados (objetos simples que puedes definir) al historial del navegador, reemplazar el estado superior en la pila del historial y configurar una función de devolución de llamada del objeto de escucha para que responda a los cambios en el historial.

  • google.script.url proporciona los medios para recuperar los parámetros y el fragmento de URL de la página actual, si están presentes.

Estas APIs del historial solo están disponibles para apps web. No son compatibles con las barras laterales, los diálogos ni los complementos. Tampoco se recomienda su uso en apps web incorporadas en Google Sites.