Класс google.script.run (клиентский API)

google.script.run — это асинхронный клиентский API JavaScript, доступный на страницах HTML-сервисов , который может вызывать функции скрипта приложений на стороне сервера. Чтобы взаимодействовать с диалоговыми окнами или боковыми панелями в Документах, Таблицах или Формах Google из клиентского кода, используйте google.script.host . Дополнительные сведения см. в руководстве по взаимодействию с серверными функциями в службе HTML.

Методы

Метод Тип возврата Краткое описание
myFunction(...) (любая серверная функция) void Выполняет функцию сценария приложений на стороне сервера с соответствующим именем.
withFailureHandler(function) google.script.run Устанавливает функцию обратного вызова для запуска, если функция на стороне сервера выдает исключение.
withSuccessHandler(function) google.script.run Устанавливает функцию обратного вызова для запуска в случае успешного завершения работы серверной функции.
withUserObject(object) google.script.run Устанавливает объект для передачи в качестве второго параметра обработчикам успеха и неудачи.

Подробная документация

myFunction(...) (любая серверная функция)

Выполняет функцию сценария приложений на стороне сервера с соответствующим именем.

Код.gs

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

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

Индекс.html

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

Параметры

Имя Тип Описание
... Большинство типов допустимы, но не элементы Date , Function или DOM, кроме form ; см. описание Допустимые параметры — это примитивы JavaScript, такие как Number , Boolean , String или null , а также объекты и массивы JavaScript, состоящие из примитивов, объектов и массивов. Элемент form на странице также допустим в качестве параметра, но он должен быть единственным параметром функции. Запросы завершаются неудачно, если вы пытаетесь передать элемент Date , Function , DOM помимо form или другой запрещенный тип, включая запрещенные типы внутри объектов или массивов. Объекты, создающие циклические ссылки, также не будут работать, а неопределенные поля в массивах станут null . Обратите внимание, что объект, переданный на сервер, становится копией оригинала. Если функция сервера получает объект и изменяет его свойства, свойства клиента не затрагиваются.

Возвращаться

void — этот метод асинхронный и не возвращает результат напрямую; однако функция на стороне сервера может возвращать значение клиенту в качестве параметра, передаваемого обработчику успеха ; Кроме того, на возвращаемые типы распространяются те же ограничения, что и на типы параметров, за исключением того, что элемент form не является допустимым возвращаемым типом.


withFailureHandler(function)

Устанавливает функцию обратного вызова для запуска, если функция на стороне сервера выдает исключение. Объект Error передается функции в качестве первого аргумента, а объект пользователя (если есть) передается в качестве второго аргумента. Без обработчика сбоев сбои регистрируются в консоли JavaScript. Чтобы переопределить это, вызовите withFailureHandler(null) или укажите обработчик ошибок, который ничего не делает.

Код.gs

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

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

Индекс.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>

Параметры

Имя Тип Описание
function Function функция обратного вызова на стороне клиента, которая запускается, если функция на стороне сервера выдает исключение; объект Error передается функции в качестве первого аргумента, а объект пользователя (если есть) передается в качестве второго аргумента.

Возвращаться

google.script.run — этот «запуск скриптов» для связывания


withSuccessHandler(function)

Устанавливает функцию обратного вызова для запуска в случае успешного завершения работы серверной функции. Возвращаемое значение сервера передается функции в качестве первого аргумента, а пользовательский объект (если есть) передается в качестве второго аргумента.

Код.gs

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

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

Индекс.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>

Параметры

Имя Тип Описание
function Function функция обратного вызова на стороне клиента, которая запускается в случае успешного завершения работы функции на стороне сервера; возвращаемое значение сервера передается функции в качестве первого аргумента, а пользовательский объект (если есть) передается в качестве второго аргумента

Возвращаться

google.script.run — этот «запуск скриптов» для связывания


withUserObject(object)

Устанавливает объект для передачи в качестве второго параметра обработчикам успеха и неудачи. Этот «объект пользователя» — не путать с классом User — позволяет функциям обратного вызова реагировать на контекст, в котором клиент связался с сервером. Поскольку пользовательские объекты не отправляются на сервер, на них не распространяются ограничения на параметры и возвращаемые значения для вызовов сервера . Однако пользовательские объекты не могут быть объектами, созданными с помощью оператора new .

Код.gs

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

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

Индекс.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>

Параметры

Имя Тип Описание
object Object объект для передачи в качестве второго параметра обработчикам успеха и неудачи; поскольку пользовательские объекты не отправляются на сервер, на них не распространяются ограничения на параметры и возвращаемые значения для вызовов сервера . Однако пользовательские объекты не могут быть объектами, созданными с помощью new оператора.

Возвращаться

google.script.run — этот «запуск скриптов» для связывания