このページでは、Google Chat を拡張する Google Workspace アドオンのユーザー インターフェース(UI)を作成する方法の概要について説明します。
Google Chat では、アドオンは Google Chat アプリとしてユーザーに表示されます。詳細については、Google Chat の拡張機能の概要をご覧ください。
Chat 用アプリのインターフェースを構築するには、次のアドオン コンポーネントを使用します。
- トリガー: Google Chat ユーザーが Chat アプリを呼び出す方法(スペースへの追加、メッセージの送信など)。
- イベント オブジェクト: Chat アプリがトリガーまたは UI 操作から受け取るデータ。
- アクション: メッセージの送信やカードベースのユーザー インターフェースの返却など、Chat アプリがインタラクションに応答する方法。
Chat アプリは、次のインターフェースでカードを作成して表示できます。
- メッセージ: テキスト、静的カードまたはインタラクティブ カード、ボタンを含めることができます。
- ダイアログ: 新しいウィンドウで開くカードで、通常はユーザーに情報を送信するよう求めるメッセージが表示されます。
- リンク プレビュー: 外部サービスに関する情報をプレビューするカードです。
トリガー
このセクションでは、Google Workspace アドオンが Chat で使用するトリガーについて説明します。
トリガーは、ユーザーが Chat UI を使用して Chat アプリを呼び出す特定の方法です(@ メンションやスラッシュ コマンドなど)。
次の表に、Chat トリガー、説明、Chat アプリの一般的な応答方法を示します。
トリガー | 説明 | 一般的な回答 |
---|---|---|
スペースに追加しました |
ユーザーが Chat アプリをスペースに追加するか、Google Workspace 管理者が組織内のユーザーのダイレクト メッセージ スペースに Chat アプリをインストールします。 |
Chat アプリは、その機能とスペース内のユーザーがどのように操作できるかを説明するオンボーディング メッセージを送信します。 |
メッセージ |
ユーザーが次のいずれかの方法で、メッセージ内の Chat アプリを操作します。
|
Chat アプリは、メッセージの内容に基づいて応答します。たとえば、Chat アプリは /about コマンドに、Chat アプリが実行できるタスクを説明するメッセージを返します。 |
スペースから削除 |
ユーザーがスペースから Chat アプリを削除した場合、または Google Workspace 管理者が組織内のユーザーの Chat アプリをアンインストールした場合。 |
Chat アプリは、スペース用に構成された受信通知(Webhook の削除など)を削除し、内部ストレージを消去します。チャットアプリはスペースのメンバーではなくなったため、このトリガーにメッセージで返信することはできません。 |
他の Google Workspace アドオンとは異なり、これらのトリガーのコールバック関数は Google Chat API を使用して構成する必要があります。ガイダンスについては、Google Chat アプリを構成するをご覧ください。
トリガーに応答するには、次のガイドをご覧ください。
イベント オブジェクト
このセクションでは、Chat イベント オブジェクトのすべての要素について定義と説明を行います。詳細については、イベント オブジェクトをご覧ください。
イベント オブジェクト | |
---|---|
commonEventObject |
object
(CommonEventObject)
ホスト アプリケーションに関係なく、すべてのイベント オブジェクトに共通する情報が含まれるオブジェクト。 |
chat |
object
(Chat)
Chat のインタラクションに関するすべての情報が含まれるオブジェクト。 |
チャット
チャット | |
---|---|
chat.user |
object
(User)
Chat アプリを操作した Chat ユーザー。 |
chat.space |
object
(Space)
ユーザーが Chat アプリを操作した Chat スペース。 |
chat.eventTime |
|
共用体フィールド
|
|
chat.messagePayload |
Chat アプリが メッセージ トリガーから受信するペイロード。 |
chat.addedToSpacePayload |
Chat アプリが Added to space トリガーから受け取るペイロード。 |
chat.removedFromSpacePayload |
Chat アプリが スペースから削除トリガーから受け取るペイロード。 |
chat.buttonClickedPayload |
ユーザーがメッセージまたはカードのボタンをクリックしたときに Chat アプリが受け取るペイロード。ユーザーがボタンをクリックして情報を送信すると、 |
chat.widgetUpdatedPayload |
ユーザーが `selectionInput` ウィジェットのマルチ選択メニューにテキストを入力したときに Chat アプリが受信するペイロード。チャットアプリでは、このイベント オブジェクトを使用して、動的データソースから候補アイテムを入力できます。たとえば、外部データソースからサポートケースを入力するには、チャットアプリがユーザーがメニューに入力した内容に基づいてデータソースをクエリし、一致するサポートケースを選択可能なアイテムとして返します。
|
ペイロード
インタラクションの種類に応じて、イベントには 1 つ以上の Chat API リソースを含むペイロードが含まれます。
メッセージ ペイロード
MessagePayload | |
---|---|
chat.messagePayload.message |
object
(Message)
イベントをトリガーした Chat メッセージ。 |
chat.messagePayload.space |
object
(Space)
ユーザーが Chat アプリを呼び出すメッセージを送信した Chat スペース。 |
スペースのペイロードに追加されました
AddedToSpacePayload | |
---|---|
chat.addedToSpacePayload.space |
object
(Space)
ユーザーが Chat アプリを追加またはインストールした Chat スペース。 |
chat.addedToSpacePayload.interactionAdd |
boolean メッセージを使用してユーザーが Chat アプリをスペースに追加したかどうか。たとえば、Chat アプリを @ メンションしたり、スラッシュ コマンドを使用したりします。 true の場合、Chat は、メッセージに関する情報を含む messagePayload を含む別のイベント オブジェクトを送信します。 |
スペース ペイロードから削除
RemovedFromSpacePayload | |
---|---|
chat.removedFromSpacePayload.space |
object
(Space)
ユーザーが Chat アプリを削除またはアンインストールした Chat スペース。 |
ボタンクリック ペイロード
ButtonClickedPayload | |
---|---|
chat.buttonClickedPayload.message |
object
(Message)
ユーザーがクリックしたボタンを含む Chat メッセージ。 |
chat.buttonClickedPayload.space |
object
(Space)
ユーザーが Chat アプリのメッセージからボタンをクリックした Chat スペース。 |
chat.buttonClickedPayload.isDialogEvent |
boolean ユーザーがボタンをクリックしてダイアログを操作したかどうか。 |
chat.buttonClickedPayload.dialogEventType |
enum (DialogEventType) isDialogEvent が true の場合、ダイアログ内のインタラクションのタイプ。
|
列挙型
|
|
TYPE_UNSPECIFIED |
デフォルト値。(指定なし) |
REQUEST_DIALOG |
ユーザーがダイアログをリクエストします。たとえば、スラッシュ コマンドを使用するか、メッセージのボタンをクリックします。 |
SUBMIT_DIALOG |
ユーザーがダイアログ内のインタラクティブな要素をクリックします。たとえば、ユーザーがダイアログで情報を入力し、ボタンをクリックして情報を送信します。 |
ウィジェットの更新ペイロード
WidgetUpdatedPayload | |
---|---|
chat.widgetUpdatedPayload.space |
object
(Space)
インタラクションが発生した Chat スペース。 |
チャットの操作
このセクションでは、Chat アプリでアドオン アクションを使用してユーザー操作に対応する方法について説明します。
アドオン アクションで応答するには、Chat アプリが 30 秒以内に応答し、インタラクションが発生したスペースにレスポンスを投稿する必要があります。それ以外の場合、Chat アプリは認証を設定し、Google Chat API を呼び出して応答する必要があります。
チャットアプリは、さまざまな方法でインタラクションを処理して応答できます。多くの場合、Chat アプリはメッセージで返信します。チャットアプリは、データソースから情報を検索したり、イベント オブジェクトの情報を記録したりすることもできます。この処理動作が、基本的に Google Chat アプリを定義するものです。
ユーザー操作に応答するには、Chat アプリは対応するイベント オブジェクトを処理し、次のいずれかの JSON オブジェクトを返す必要があります。
DataActions
: Google Workspace データを作成または更新します。Chat メッセージを送信または更新するには、オブジェクトにMessage
データの変更を定義するマークアップ(chatDataActionMarkup
として表されます)を含める必要があります。RenderActions
: メッセージとダイアログでカードを表示またはカード間を移動します。basic_authorization_prompt
: 認証カードを提示したユーザーに、Google の外部サービスへのログインまたは認証を求めるメッセージが表示されます。詳しくは、Google Workspace アドオンをサードパーティ サービスに接続するをご覧ください。
チャットアプリの望ましいレスポンス | 返品に必要な対応 |
---|---|
メッセージを送信または更新する。 | DataActions |
ダイアログを開く、更新する、閉じる。 | RenderActions |
カードまたはダイアログから情報を収集するには、ユーザーがマルチ選択メニューに入力した内容に基づいて選択項目を提案します。 | RenderActions |
Chat ユーザーがスペースに送信したメッセージ内のリンクをプレビューできます。 | DataActions |
Google Chat API を使用して返信する
Chat アプリでは、アドオン アクションを返す代わりに、Google Chat API を使用してインタラクションに応答する必要があります。たとえば、Chat アプリは、次のいずれかを行うために Google Chat API を呼び出す必要があります。
- 30 秒後にインタラクションに応答します。
- 操作が行われたスペースの外でタスクを実行する。
- アドオン アクションとして利用できないタスクを Chat で実行します。たとえば、ユーザーまたは Chat アプリがメンバーであるスペースを一覧表示したり、スペースにユーザーを追加したりできます。
- Chat ユーザーに代わってタスクを実行します(ユーザー認証が必要です)。
Chat API の認証と呼び出しについて詳しくは、Chat API の概要をご覧ください。