google.script.run は、以下で利用可能な非同期のクライアントサイド JavaScript API です。
  サーバーサイドの Apps Script を呼び出すことができる HTML サービス ページ
  使用できます。Google ドキュメント、スプレッドシート、フォームのダイアログやサイドバーをクライアントサイドから操作するには
  google.script.host を使用します。詳しくは、
  サーバー機能との通信に関するガイド
  使用できます。
メソッド
| メソッド | 戻り値の型 | 概要 | 
|---|---|---|
| myFunction(...)(任意のサーバーサイド関数) | void | 対応する名前でサーバーサイドの Apps Script 関数を実行します。 | 
| withFailureHandler(function) | google.script.run | サーバー側関数が例外をスローした場合に実行するコールバック関数を設定します。 | 
| withSuccessHandler(function) | google.script.run | サーバー側関数が正常に返された場合に実行するコールバック関数を設定します。 | 
| withUserObject(object) | google.script.run | 成功ハンドラと失敗ハンドラに 2 番目のパラメータとして渡すオブジェクトを設定します。 | 
詳細なドキュメント
myFunction(...)(任意のサーバーサイド関数)
対応する名前でサーバーサイドの Apps Script 関数を実行します。
コード.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>パラメータ
| 名前 | 型 | 説明 | 
|---|---|---|
| ... | ほとんどの型は有効ですが、 Date、Function、
  またはform以外の DOM 要素説明を見る | 有効なパラメータは JavaScript です Number、Boolean、Stringなどのプリミティブか、null、JavaScript オブジェクト、プリミティブ、
  オブジェクト、配列の 3 つですページ内のform要素もパラメータとして使用できますが、
  関数の唯一のパラメータにする必要があります。同じ値を渡そうとすると、リクエストは失敗します。Date、Function、form以外の DOM 要素など
  禁止された型(オブジェクトまたは配列内の禁止された型を含む)円形を形成するオブジェクト
  参照も失敗し、配列内の未定義のフィールドはnullになります。注:
  サーバーに渡されるオブジェクトは、元のオブジェクトのコピーになります。サーバー関数が
  そのプロパティを変更しても、クライアントのプロパティには影響しません。 | 
戻る
void - このメソッドは非同期で、直接返しません。ただし、
  サーバーサイド関数は、クライアントに渡されたパラメータとして
  success handler;また、戻り値の型は
  パラメータ型と同じ制限ですが、form 要素は無効です
  戻り値の型
withFailureHandler(function)
サーバー側関数が例外をスローした場合に実行するコールバック関数を設定します。「
  Error
  オブジェクトが最初の引数として関数に渡され、
  ユーザー オブジェクト(存在する場合)が 2 番目の引数として渡されます。なし
  作成されていない場合、エラーは JavaScript コンソールに記録されます。これをオーバーライドするには、
  withFailureHandler(null) を使用するか、何も実行しない失敗ハンドラを指定します。
コード.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>パラメータ
| 名前 | 型 | 説明 | 
|---|---|---|
| function | Function | クライアントサイドのコールバック関数を使用して、
  サーバー側関数が例外をスローした場合に実行する Errorオブジェクトが最初の引数として関数に渡され、
  ユーザー オブジェクト(存在する場合)が 2 番目の引数として渡されます。 | 
戻る
google.script.run - この「スクリプト ランナー」。チェーン
withSuccessHandler(function)
サーバー側関数が正常に返された場合に実行するコールバック関数を設定します。サーバーの 戻り値が最初の引数として関数に渡され、 ユーザー オブジェクト(存在する場合)が 2 番目の引数として渡されます。
コード.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>パラメータ
| 名前 | 型 | 説明 | 
|---|---|---|
| function | Function | クライアントサイドのコールバック関数を使用して、 サーバーサイド関数が正常に返された場合に実行するサーバーの戻り値が 関数とユーザー オブジェクト(存在する場合)を渡します。 2 番目の引数として渡されます。 | 
戻る
google.script.run - この「スクリプト ランナー」。チェーン
withUserObject(object)
成功ハンドラと失敗ハンドラに 2 番目のパラメータとして渡すオブジェクトを設定します。この「ユーザーは
  object"このモジュールの用語と混同しないよう
  User クラス - コールバックを
  クライアントがサーバーに接続したコンテキストに応答します。user オブジェクトは
  サーバーに送信されず、パラメータの制限や、
  サーバー呼び出しの値。ただし、User オブジェクトは
  new 演算子で構築します。
コード.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>パラメータ
| 名前 | 型 | 説明 | 
|---|---|---|
| object | Object | 2 番目のパラメータとして渡すオブジェクト
  成功と失敗のハンドラに対して設定しユーザー オブジェクトはサーバーに送信されず、
  ただし、使用できるパラメータと戻り値に関する制限が
  サーバー呼び出し。ただし、User オブジェクトは、Google Cloud 内で new演算子を使用 | 
戻る
google.script.run - この「スクリプト ランナー」。チェーン