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()" /> <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
- この「スクリプト ランナー」。チェーン