google.script.run é uma API JavaScript assíncrona do lado do cliente disponível em
  Páginas de serviços HTML que podem chamar o Apps Script do lado do servidor
  . Interagir com caixas de diálogo ou barras laterais em Documentos, Planilhas ou Formulários Google no lado do cliente
  use google.script.host. Para mais informações, consulte a
  guia para comunicação com funções de servidor
  no serviço HTML.
Métodos
| Método | Tipo de retorno | Breve descrição | 
|---|---|---|
myFunction(...) (qualquer função do lado do servidor) | 
  void | 
  Executa a função do Apps Script do lado do servidor com o nome correspondente. | 
withFailureHandler(function) | 
  google.script.run | 
  Define uma função de retorno de chamada a ser executada se a função do servidor gerar uma exceção. | 
withSuccessHandler(function) | 
  google.script.run | 
  Define uma função de retorno de chamada a ser executada se a função do lado do servidor retornar com sucesso. | 
withUserObject(object) | 
  google.script.run | 
  Define um objeto a ser transmitido como um segundo parâmetro para os gerenciadores de sucesso e falha. | 
Documentação detalhada
myFunction(...) (qualquer função do lado do servidor)
Executa a função do Apps Script do lado do servidor com o nome correspondente.
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
| Nome | Tipo | Descrição | 
|---|---|---|
... | A maioria dos tipos é válida, mas não Date, Function,
  ou elemento DOM além de form. ver descrição | Os parâmetros legais são JavaScript
  primitivos, como Number, Boolean, String ou
  null, bem como objetos JavaScript e matrizes compostas de primitivos,
  objetos e matrizes. Um elemento form na página também é válido como parâmetro, mas
  ele precisa ser o único parâmetro da função. As solicitações falharão se você tentar passar um
  Date, Function, um elemento DOM além de um form ou outro
  proibido, incluindo tipos proibidos dentro de objetos ou matrizes. Objetos que criam formas circulares
  as referências também vão falhar, e os campos indefinidos dentro das matrizes se tornarão null. Observe que
  um objeto passado para o servidor torna-se uma cópia do original. Se uma função de servidor receber um
  e alterar suas propriedades, as propriedades do cliente não serão afetadas. | 
Retornar
void: esse método é assíncrono e não retorna diretamente. No entanto, a
  a função do lado do servidor pode retornar um valor para o cliente como um parâmetro passado para uma
  gerenciador de sucesso Além disso, os tipos de retorno estão sujeitos à
  As mesmas restrições dos tipos de parâmetros, exceto pelo fato de um elemento form não ser um
  tipo de retorno
withFailureHandler(function)
Define uma função de retorno de chamada a ser executada se a função do servidor gerar uma exceção. A
  Error
  é passado para a função como o primeiro argumento, e o
  objeto de usuário (se houver) é transmitido como um segundo argumento. Sem
  um gerenciador de falhas, as falhas são registradas no Console JavaScript. Para substituir isto, chame
  withFailureHandler(null) ou forneça um gerenciador de falhas que não faz 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
| Nome | Tipo | Descrição | 
|---|---|---|
function | Function | uma função de callback do lado do cliente
  executar se a função do lado do servidor gerar uma exceção; as
  Error
  é passado para a função como o primeiro argumento, e o
  O objeto de usuário (se houver) é transmitido como um segundo argumento. | 
Retornar
google.script.run: este "executor de script", para encadeamento
withSuccessHandler(function)
Define uma função de retorno de chamada a ser executada se a função do lado do servidor retornar com sucesso. O servidor valor de retorno é passado para a função como o primeiro argumento, e o user object (se houver) é transmitido como um 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
| Nome | Tipo | Descrição | 
|---|---|---|
function | Function | uma função de callback do lado do cliente executar se a função do lado do servidor retornar com êxito; o valor de retorno do servidor é passado ao como primeiro argumento, e o objeto user (se houver) é passado como um segundo argumento | 
Retornar
google.script.run: este "executor de script", para encadeamento
withUserObject(object)
Define um objeto a ser transmitido como um segundo parâmetro para os gerenciadores de sucesso e falha. Esse "usuário
  object" Não confunda com o
  User: permite que o callback
  respondem ao contexto em que o cliente entrou em contato com o servidor. Como os objetos do usuário
  não forem enviados ao servidor, eles não estão sujeitos às restrições de parâmetros e valores de retorno
  para chamadas do servidor. No entanto, os objetos de usuário não podem ser objetos
  construído com o 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()" />
  </body>
</html>Parâmetros
| Nome | Tipo | Descrição | 
|---|---|---|
object | Object | um objeto a ser transmitido como um segundo parâmetro
  aos gerenciadores de sucesso e falha. como os objetos de usuário não são enviados ao servidor, eles não são
  sujeito às restrições de parâmetros e valores de retorno para
  chamadas de servidor. No entanto, os objetos de usuário não podem ser construídos
  com o operador new | 
Retornar
google.script.run: este "executor de script", para encadeamento