Classe google.script.run (API lato client)

google.script.run è un'API JavaScript lato client asincrona disponibile in Pagine di servizio HTML che possono chiamare Apps Script lato server funzioni. Interagire con finestre di dialogo o barre laterali in Documenti, Fogli o Moduli Google dal lato client utilizza google.script.host. Per ulteriori informazioni, consulta guida alla comunicazione con le funzioni del server nel servizio HTML.

Metodi

MetodoTipo restituitoBreve descrizione
myFunction(...) (qualsiasi funzione lato server) void Esegue la funzione Apps Script lato server con il nome corrispondente.
withFailureHandler(function) google.script.run Imposta una funzione di callback da eseguire se la funzione lato server genera un'eccezione.
withSuccessHandler(function) google.script.run Imposta una funzione di callback da eseguire se la funzione lato server viene restituita correttamente.
withUserObject(object) google.script.run Imposta un oggetto da passare come secondo parametro ai gestori di operazioni riuscite e non riuscite.

Documentazione dettagliata

myFunction(...) (qualsiasi funzione lato server)

Esegue la funzione Apps Script lato server con il nome corrispondente.

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>

Parametri

NomeTipoDescrizione
...La maggior parte dei tipi è legale, ma non Date, Function, o DOM oltre a form; vedi la descrizioneI parametri legali sono JavaScript come Number, Boolean, String o null, nonché oggetti e array JavaScript composti da primitive, come oggetti e matrici. Anche un elemento form all'interno della pagina è consentito come parametro, ma deve essere l'unico parametro della funzione. Le richieste non vanno a buon fine se tenti di passare Date, Function, elemento DOM oltre a form o altro tipo vietato, inclusi tipi vietati all'interno di oggetti o array. Oggetti che creano circolari anche i riferimenti non riusciranno e i campi non definiti all'interno degli array diventeranno null. Tieni presente che un oggetto passato al server diventa una copia dell'originale. Se una funzione server riceve un e le relative proprietà, le proprietà del client non sono interessate.

Invio

void: questo metodo è asincrono e non restituisce direttamente; tuttavia, funzione lato server può restituire un valore al client come parametro passato a un gestore del successo; Inoltre, i tipi di restituzione sono soggetti alle stesse restrizioni dei tipi di parametri, ad eccezione del fatto che un elemento form non è un tipo restituito


withFailureHandler(function)

Imposta una funzione di callback da eseguire se la funzione lato server genera un'eccezione. La Error viene passato alla funzione come primo argomento e oggetto utente (se presente) viene passato come secondo argomento. Senza un gestore degli errori, gli errori vengono registrati nella console JavaScript. Per eseguire l'override, richiama withFailureHandler(null) o fornisci un gestore degli errori che non esegue alcuna operazione.

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>

Parametri

NomeTipoDescrizione
functionFunctionuna funzione di callback lato client se la funzione lato server genera un'eccezione; il Error viene passato alla funzione come primo argomento e oggetto utente (se presente) viene passato come secondo argomento

Invio

google.script.run: questo "script runner", per concatenare


withSuccessHandler(function)

Imposta una funzione di callback da eseguire se la funzione lato server viene restituita correttamente. Il valore il valore restituito viene passato alla funzione come primo argomento e oggetto utente (se presente) viene passato come secondo argomento.

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>

Parametri

NomeTipoDescrizione
functionFunctionuna funzione di callback lato client eseguire se la funzione lato server restituisce correttamente; il valore restituito dal server viene passato come primo argomento e l'oggetto utente (se presente) viene passato come secondo argomento

Invio

google.script.run: questo "script runner", per concatenare


withUserObject(object)

Imposta un oggetto da passare come secondo parametro ai gestori di operazioni riuscite e non riuscite. Questo "utente object&quot; da non confondere con Classe User: consente di richiamare rispondono al contesto in cui il client ha contattato il server. Poiché gli oggetti utente non vengono inviati al server, non sono soggetti alle restrizioni sui parametri per le chiamate al server. Gli oggetti utente non possono, tuttavia, essere oggetti creato con l'operatore 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>

Parametri

NomeTipoDescrizione
objectObjectun oggetto da passare come secondo parametro ai gestori delle operazioni riuscite e non riuscite; poiché gli oggetti utente non vengono inviati al server e non vengono alle limitazioni dei parametri e dei valori restituiti per chiamate al server. Tuttavia, gli oggetti utente non possono essere creati con l'operatore new

Invio

google.script.run: questo "script runner", per concatenare