このページでは、Google Chat 用アプリとのダイレクト メッセージのホームページをビルドする方法について説明します。ホームページ(Google Chat API ではアプリホームと呼ばれます)は、ユーザーと Chat 用アプリ間のダイレクト メッセージ スペースの [ホーム] タブに表示される、カスタマイズ可能なカード インターフェースです。Chat 用アプリを Google Workspace アドオンとしてビルドする場合は、Chat のホームページを構成するをご覧ください。
アプリのホームを使用すると、Chat アプリの操作に関するヒントを共有したり、ユーザーが Chat から外部のサービスやツールにアクセスして使用できるようにしたりできます。
カード作成ツールを使用して、Chat 用アプリのメッセージとユーザー インターフェースを設計してプレビューします。
カードビルダーを開く前提条件
Node.js
インタラクション イベントを受信して応答する Google Chat 用アプリ。HTTP サービスを使用してインタラクティブな Chat 用アプリを作成するには、このクイックスタートを完了してください。
Python
インタラクション イベントを受信して応答する Google Chat 用アプリ。HTTP サービスを使用してインタラクティブな Chat 用アプリを作成するには、このクイックスタートを完了してください。
Java
インタラクション イベントを受信して応答する Google Chat 用アプリ。HTTP サービスを使用してインタラクティブな Chat 用アプリを作成するには、このクイックスタートを完了してください。
Apps Script
インタラクション イベントを受信して応答する Google Chat 用アプリ。Apps Script で双方向の Chat 用アプリを作成するには、このクイック スタートを完了してください。
Chat 用アプリのアプリホームを構成する
アプリホームをサポートするには、APP_HOME インタラクション イベントを受け取るように Chat 用アプリを構成する必要があります。ユーザーが Chat 用アプリとのダイレクト メッセージから [ホーム] タブをクリックするたびに、Chat 用アプリはこのイベントを受け取ります。
Google Cloud コンソールで構成設定を更新する手順は次のとおりです。
- Google Cloud コンソールで、メニュー > [API とサービス] > [有効な API とサービス] > [Google Chat API] > [構成] をクリックします。Chat API の構成に移動
- [インタラクティブ機能] の [機能] セクションで、[アプリのホームをサポートする] を選択します。
- Chat 用アプリで HTTP サービスを使用している場合は、[接続設定] に移動し、[アプリのホーム URL] フィールドにエンドポイントを指定します。[HTTP エンドポイント URL] フィールドで指定した URL を使用できます。
- [保存] をクリックします。
アプリのホームカードを作成する
ユーザーがアプリのホームを開くと、Chat 用アプリは pushCard ナビゲーションと Card を含む RenderActions のインスタンスを返すことで、APP_HOME インタラクション イベントを処理する必要があります。インタラクティブなエクスペリエンスを作成するには、カードにボタンやテキスト入力などのインタラクティブなウィジェットを含めることができます。Chat 用アプリは、これらのウィジェットを処理し、追加のカードやダイアログで応答できます。
次の例では、Chat 用アプリは、カードが作成された時刻とボタンを表示する最初のアプリホームカードを表示します。ユーザーがボタンをクリックすると、Chat 用アプリは、更新されたカードが作成された時刻を表示する更新されたカードを返します。
Node.js
Python
Java
Apps Script
すべての APP_HOME インタラクション イベントの後に呼び出される onAppHome 関数を実装します。
この例では、カード JSON を返すことでカード メッセージを送信します。Apps Script カードサービスを使用することもできます。
アプリのホーム画面での操作に対応する
アプリの最初のホームカードにボタンや選択入力などのインタラクティブ ウィジェットが含まれている場合、Chat 用アプリは、updateCard ナビゲーションを含む RenderActions のインスタンスを返すことで、関連するインタラクション イベントを処理する必要があります。インタラクティブ ウィジェットの処理について詳しくは、ユーザーが入力した情報を処理するをご覧ください。
前の例では、アプリのホームの最初のカードにボタンが含まれていました。ユーザーがボタンをクリックするたびに、CARD_CLICKED インタラクション イベントがトリガーされ、次のコードに示すように、関数 updateAppHome がアプリのホームカードを更新します。
Node.js
Python
Java
Apps Script
この例では、カード JSON を返すことでカード メッセージを送信します。Apps Script カードサービスを使用することもできます。
ダイアログを開く
Chat 用アプリは、ダイアログを開いて、アプリのホームでの操作に応答することもできます。
アプリのホームからダイアログを開くには、Card オブジェクトを含む updateCard ナビゲーションで renderActions を返すことで、関連するインタラクション イベントを処理します。次の例では、Chat 用アプリがアプリのホームカードのボタンクリックに応答して、CARD_CLICKED インタラクション イベントを処理し、ダイアログを開きます。
{ renderActions: { action: { navigations: [{ updateCard: { sections: [{
header: "Add new contact",
widgets: [{ "textInput": {
label: "Name",
type: "SINGLE_LINE",
name: "contactName"
}}, { textInput: {
label: "Address",
type: "MULTIPLE_LINE",
name: "address"
}}, { decoratedText: {
text: "Add to favorites",
switchControl: {
controlType: "SWITCH",
name: "saveFavorite"
}
}}, { decoratedText: {
text: "Merge with existing contacts",
switchControl: {
controlType: "SWITCH",
name: "mergeContact",
selected: true
}
}}, { buttonList: { buttons: [{
text: "Next",
onClick: { action: { function: "openSequentialDialog" }}
}]}}]
}]}}]}}}
ダイアログを閉じるには、次のインタラクション イベントを処理します。
CLOSE_DIALOG: ダイアログを閉じて、Chat 用アプリの最初のアプリホームカードに戻ります。CLOSE_DIALOG_AND_EXECUTE: ダイアログを閉じて、アプリのホームカードを更新します。
次のコードサンプルでは、CLOSE_DIALOG を使用してダイアログを閉じ、アプリのホームカードに戻ります。
{ renderActions: { action: {
navigations: [{ endNavigation: { action: "CLOSE_DIALOG" }}]
}}}
ユーザーから情報を収集するために、連続したダイアログを構築することもできます。順次ダイアログを構築する方法については、ダイアログを開いて応答するをご覧ください。
関連トピック
- アプリのホームを使用する Chat 用アプリのサンプルを表示する。
- ダイアログを開いて返信する。