UI 要素内でインタラクティビティを可能にするアクション。このアクションはクライアントで直接実行されず、オプションのパラメータを指定して Apps Script コールバック関数を呼び出します。
Google Workspace アドオンと Google Chat アプリでご利用いただけます。
var image = CardService.newImage() .setOnClickAction(CardService.newAction() .setFunctionName("handleImageClick") .setParameters({imageSrc: 'carImage'}));
Methods
メソッド | 戻り値の型 | 概要 |
---|---|---|
setFunctionName(functionName) | Action | 呼び出されるコールバック関数の名前を設定します。 |
setInteraction(interaction) | Action | ユーザーとのやり取りを設定します。ダイアログを開く場合にのみ必要です。 |
setLoadIndicator(loadIndicator) | Action | アクションの進行中に表示される読み込みインジケーターを設定します。 |
setParameters(parameters) | Action | カスタム パラメータをコールバック関数に渡すことができます。 |
setPersistValues(persistValues) | Action | アクション レスポンスによってフォームの Card が更新された後に、フォームの値がクライアントの値とサーバーの値のどちらで決定されるかを示します。 |
詳細なドキュメント
setFunctionName(functionName)
呼び出されるコールバック関数の名前を設定します。必須。
パラメータ
Name | 型 | 説明 |
---|---|---|
functionName | String | 関数の名前。付属のライブラリの関数(Library.libFunction1 など)を使用できます。 |
リターン
Action
- チェーン用のこのオブジェクト。
setInteraction(interaction)
ユーザーとのやり取りを設定します。ダイアログを開く場合にのみ必要です。指定しない場合、アプリは通常どおり、リンクのオープンや関数の実行など、Action
を実行することで応答します。
Google Chat アプリでのみ使用できます。Google Workspace アドオンでは利用できません。
const action = CardService.newAction() .setFunctionName('handleDialog') .setInteraction(CardService.Interaction.OPEN_DIALOG);
パラメータ
Name | 型 | 説明 |
---|---|---|
interaction | Interaction | 指定するインタラクション。 |
リターン
Action
- チェーン用のこのオブジェクト。
setLoadIndicator(loadIndicator)
アクションの進行中に表示される読み込みインジケーターを設定します。
パラメータ
Name | 型 | 説明 |
---|---|---|
loadIndicator | LoadIndicator | 表示するインジケーター。 |
リターン
Action
- チェーン用のこのオブジェクト。
setParameters(parameters)
カスタム パラメータをコールバック関数に渡すことができます。省略可。
パラメータ
Name | 型 | 説明 |
---|---|---|
parameters | Object | キーと値はどちらも文字列にする必要があります。 |
リターン
Action
- チェーン用のこのオブジェクト。
setPersistValues(persistValues)
アクション レスポンスによってフォームの Card
が更新された後に、フォームの値がクライアントの値とサーバーの値のどちらで決定されるかを示します。true
に設定すると、クライアントの値はサーバー レスポンス後も保持されます。false
に設定すると、サーバーの値によってフォームの値が上書きされます。デフォルトは false
です。
クライアントの値を永続化することで、ユーザーが編集を行った後にフォームが予期せず変更されるのを防ぐことができます。たとえば、フォームの送信後、サーバーが応答する前にユーザーが TextInput
を編集した場合などです。値が保持されている場合、サーバー レスポンスが Card
を更新した後も、ユーザーが行った編集は残ります。それ以外の場合、フォームの値はユーザーが最初にフォームを送信した値に戻ります。
クライアント値を永続化すると、スクリプトによるフォーム フィールドの消去やフォーム値のオーバーライドが妨げられる可能性があるため、このタイプの機能では永続性を有効にしないでください。永続化を使用しない場合は、イベントに LoadIndicator.SPINNER
を使用することをおすすめします。これにより、UI がロックされ、サーバーが応答する前にユーザーが編集できなくなるためです。または、LoadIndicator.NONE
を使用して、フォーム内のすべての要素に onChange アクションを含めることもできます。
// Creates a button with an action that persists the client's values as the on-click action. const button = CardService.newTextButton() .setText('Create notification') .setOnClickAction( CardService.newAction() .setPersistValues(true) .setFunctionName('functionName'));
パラメータ
Name | 型 | 説明 |
---|---|---|
persistValues | Boolean | 値を保持するかどうか。デフォルトは false です。 |
リターン
Action
- チェーン用のこのオブジェクト。