クラス google.script.run(クライアントサイド API)

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>

パラメータ

名前説明
...ほとんどの型は有効ですが、DateFunction、 または form 以外の DOM 要素説明を見る有効なパラメータは JavaScript です NumberBooleanString などのプリミティブか、 null、JavaScript オブジェクト、プリミティブ、 オブジェクト、配列の 3 つですページ内の form 要素もパラメータとして使用できますが、 関数の唯一のパラメータにする必要があります。同じ値を渡そうとすると、リクエストは失敗します。 DateFunctionform 以外の 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>

パラメータ

名前説明
functionFunctionクライアントサイドのコールバック関数を使用して、 サーバー側関数が例外をスローした場合に実行する 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>

パラメータ

名前説明
functionFunctionクライアントサイドのコールバック関数を使用して、 サーバーサイド関数が正常に返された場合に実行するサーバーの戻り値が 関数とユーザー オブジェクト(存在する場合)を渡します。 2 番目の引数として渡されます。

戻る

google.script.run - この「スクリプト ランナー」。チェーン


withUserObject(object)

成功ハンドラと失敗ハンドラに 2 番目のパラメータとして渡すオブジェクトを設定します。この「ユーザーは object&quot;このモジュールの用語と混同しないよう 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()" />
    <input type="button" value="Not Clicked"
      onclick="google.script.run
          .withSuccessHandler(updateButton)
          .withUserObject(this)
          .getEmail()" />
  </body>
</html>

パラメータ

名前説明
objectObject2 番目のパラメータとして渡すオブジェクト 成功と失敗のハンドラに対して設定しユーザー オブジェクトはサーバーに送信されず、 ただし、使用できるパラメータと戻り値に関する制限が サーバー呼び出し。ただし、User オブジェクトは、Google Cloud 内で new 演算子を使用

戻る

google.script.run - この「スクリプト ランナー」。チェーン