Clase google.script.run (API del cliente)

google.script.run es una API de JavaScript asíncrona del cliente disponible en Páginas de servicios HTML que pueden llamar a Apps Script del servidor funciones. Interactuar con cuadros de diálogo o barras laterales en Documentos, Hojas de cálculo o Formularios de Google desde el cliente usa google.script.host. Para obtener más información, consulta la guía para la comunicación con las funciones del servidor en el servicio HTML.

Métodos

MétodoTipo de datos que se muestraDescripción breve
myFunction(...) (cualquier función del servidor) void Ejecuta la función de Apps Script del servidor con el nombre correspondiente.
withFailureHandler(function) google.script.run Establece una función de devolución de llamada para que se ejecute si la función del servidor muestra una excepción.
withSuccessHandler(function) google.script.run Establece una función de devolución de llamada para que se ejecute si la función del servidor se muestra correctamente.
withUserObject(object) google.script.run Configura un objeto para pasar como segundo parámetro a los controladores de éxito y falla.

Documentación detallada

myFunction(...) (cualquier función del servidor)

Ejecuta la función de Apps Script del servidor con el nombre correspondiente.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function doSomething() {
  Logger.log('I was called!');
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      google.script.run.doSomething();
    </script>
  </head>
  <body>
  </body>
</html>

Parámetros

NombreTipoDescripción
...La mayoría de los tipos son legales, pero no se admiten Date, Function, o un elemento DOM además de form; ver descripciónLos parámetros legales son JavaScript primitivas, como Number, Boolean, String o null, así como arrays y objetos de JavaScript compuestos por primitivas, objetos y arrays. Un elemento form dentro de la página también es legal como parámetro, pero debe ser el único parámetro de la función. Las solicitudes fallan si intentas pasar un Date, Function, elemento DOM además de form, o bien otro el tipo prohibido, incluidos los tipos prohibidos dentro de objetos o arrays. Los objetos que crean imágenes las referencias también fallarán, y los campos indefinidos de los arrays se convertirán en null. Ten en cuenta que un objeto que se pasa al servidor se convierte en una copia del original. Si una función de servidor recibe un y cambia sus propiedades, las propiedades del cliente no se ven afectadas.

Volver

void: Este método es asíncrono y no muestra resultados directamente. Sin embargo, del servidor puede mostrar un valor al cliente como un parámetro que se pasa a un controlador de éxito; Los tipos de datos que se muestran están sujetos a las con las mismas restricciones que los tipos de parámetros, con la excepción de que un elemento form no es una regla tipo de datos que se devuelve


withFailureHandler(function)

Establece una función de devolución de llamada para que se ejecute si la función del servidor muestra una excepción. El Error objeto se pasa a la función como primer argumento, y la El objeto de usuario (si existe) se pasa como un segundo argumento. Sin un controlador de fallas, las fallas se registran en la Consola de JavaScript. Para anular esto, llama a withFailureHandler(null) o proporciona un controlador de fallas que no haga nada.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getUnreadEmails() {
  // 'got' instead of 'get' will throw an error.
  return GmailApp.gotInboxUnreadCount();
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function onFailure(error) {
        var div = document.getElementById('output');
        div.innerHTML = "ERROR: " + error.message;
      }

      google.script.run.withFailureHandler(onFailure)
          .getUnreadEmails();
    </script>
  </head>
  <body>
    <div id="output"></div>
  </body>
</html>

Parámetros

NombreTipoDescripción
functionFunctionuna función de devolución de llamada del cliente ejecutar si la función del servidor arroja una excepción; el Error objeto se pasa a la función como primer argumento, y la El objeto de usuario (si existe) se pasa como un segundo argumento.

Volver

google.script.run: Este "ejecutor de secuencias de comandos" para encadenar


withSuccessHandler(function)

Establece una función de devolución de llamada para que se ejecute si la función del servidor se muestra correctamente. El nombre del servidor el valor que se muestra se pasa a la función como primer argumento, y la El objeto de usuario (si existe) se pasa como un segundo argumento.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getUnreadEmails() {
  return GmailApp.getInboxUnreadCount();
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function onSuccess(numUnread) {
        var div = document.getElementById('output');
        div.innerHTML = 'You have ' + numUnread
            + ' unread messages in your Gmail inbox.';
      }

      google.script.run.withSuccessHandler(onSuccess)
          .getUnreadEmails();
    </script>
  </head>
  <body>
    <div id="output"></div>
  </body>
</html>

Parámetros

NombreTipoDescripción
functionFunctionuna función de devolución de llamada del cliente ejecutar si la función del servidor se muestra correctamente; el valor que muestra el servidor se pasa al como primer argumento y el objeto de usuario (si corresponde) se pasa como un segundo argumento

Volver

google.script.run: Este "ejecutor de secuencias de comandos" para encadenar


withUserObject(object)

Configura un objeto para pasar como segundo parámetro a los controladores de éxito y falla. Este "usuario" object&quot; no deben confundirse con Clase User: permite que la devolución de llamada responden al contexto en el que el cliente se comunicó con el servidor. Debido a que los objetos de usuario no se envían al servidor, no están sujetos a las restricciones de parámetros y devoluciones valores para las llamadas al servidor. Sin embargo, los objetos de usuario no pueden ser objetos. construido con el operador new.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getEmail() {
  return Session.getActiveUser().getEmail();
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function updateButton(email, button) {
        button.value = 'Clicked by ' + email;
      }
    </script>
  </head>
  <body>
    <input type="button" value="Not Clicked"
      onclick="google.script.run
          .withSuccessHandler(updateButton)
          .withUserObject(this)
          .getEmail()" />
    <input type="button" value="Not Clicked"
      onclick="google.script.run
          .withSuccessHandler(updateButton)
          .withUserObject(this)
          .getEmail()" />
  </body>
</html>

Parámetros

NombreTipoDescripción
objectObjectun objeto para pasar como un segundo parámetro a los controladores de fallas y de éxito; debido a que los objetos de usuario no se envían al servidor, sujeto a las restricciones de los parámetros y valores que se devuelven de llamadas al servidor. Sin embargo, los objetos de usuario no pueden ser objetos construidos con el operador new

Volver

google.script.run: Este "ejecutor de secuencias de comandos" para encadenar