Google Chat、Vertex AI、Firestore でプロジェクトを管理する

このチュートリアルでは、チームがプロジェクトをリアルタイムで管理できる Google Chat アプリを作成する方法について説明します。Chat アプリは Vertex AI を使用して、チームがユーザーストーリー(チームが開発するユーザーの視点から見たソフトウェア システムの機能を表す)を記述し、Firestore データベースにストーリーを保持できるようにします。

  • プロジェクト管理アプリに言及すると、ヘルプを求めるメッセージがアプリに表示されます。
    図 1: チャーリーは、Chat スペースでチームと機能開発について話し合っています。プロジェクト管理の Chat アプリについて言及すると、Chat アプリがヘルプを提供するプロンプトを表示します。
  • /createUserStory スラッシュ コマンドを使用してストーリーを作成します。
    図 2./createUserStory スラッシュ コマンドを使用して、チャーリーはストーリーを作成します。
  • プロジェクト管理用の Chat アプリでは、Vertex AI を使用してストーリーの説明を作成します。
    図 3.プロジェクト管理の Chat アプリは Vertex AI を使用してストーリーの説明を記述し、スペースでストーリーを共有します。
  • チャーリーがストーリーの詳細を確定します。
    図 4.チャーリーは [編集] をクリックして、ストーリーの詳細を確定します。AI の説明は正確ですが、チャーリーはより詳細な情報が必要なので、[開く] をクリックして Vertex AI でストーリーの説明に要件を追加させます。Charlie は自分にストーリーを割り当て、ステータスを [Started] に設定して、適切な優先度とサイズを選択して [Save] をクリックします。
  • チームのすべてのユーザー ストーリーを管理する。
    図 5. チャーリーは、/manageUserStories スラッシュ コマンドを使用して、チームのすべてのユーザーストーリーをいつでも表示、管理できます。

前提条件

目標

  • アジャイル ソフトウェア プロジェクトを管理する Chat アプリを構築する。
  • Vertex AI を活用した生成 AI を活用した文章作成ツールを使用して、ユーザーがユーザー ストーリーを作成できるようにします。
    • ストーリーの説明を生成、再生成する。
    • メモから事例の説明を開いて、要件を満たす。
    • 文法を修正して誤字脱字を修正する。
  • Firestore データベースへの書き込みや読み取りを行うことで、作業を常に最新の状態に保ちます。
  • ユーザーが会話から直接ストーリーを作成、編集、割り当て、開始できるようにすることで、Chat スペースでのコラボレーションが促進されます。

使用プロダクト

プロジェクト管理アプリは、次の Google Workspace と Google Cloud プロダクトを使用します。

  • Chat API: メッセージなどの Chat インタラクション イベントを受信して応答する Google Chat アプリを開発するための API。プロジェクト管理 Google Chat アプリは、Chat API を使用して、Chat によって送信されたインタラクション イベントを受信して応答し、名前やアバター画像など、Chat での表示方法を決定する属性を構成します。
  • Vertex AI API: 生成 AI プラットフォーム。プロジェクト管理の Google Chat アプリは、Vertex AI API を使用してユーザーストーリーのタイトルと説明を記述します。
  • Firestore: サーバーレスのドキュメント データベース。プロジェクト管理用の Google Chat アプリは、Firebase を使用してユーザーストーリーに関するデータを保存します。
  • Cloud Functions: サーバーやランタイム環境を管理せずに、Chat インタラクション イベントに応答する単一目的のスタンドアロン関数を作成できる軽量のサーバーレス コンピューティング サービス。プロジェクト管理用の Google Chat アプリは、Cloud Functions を使用して、Chat がインタラクション イベントを送信する HTTP エンドポイントをホストします。また、これらのイベントを処理して応答するロジックを実行するコンピューティング プラットフォームとして、このエンドポイントをホストします。

    Cloud Functions は、次の Google Cloud プロダクトを使用して、インタラクション イベントの構築、処理、コンピューティング リソースのホストを行います。

    • Cloud Build: 自動ビルドを実行する、継続的インテグレーション、デリバリー、デプロイのためのフルマネージド プラットフォーム。
    • Pub/Sub: メッセージを処理するサービスとメッセージを生成するサービスを切り離す、非同期でスケーラブルなメッセージング サービス。
    • Cloud Run Admin API: コンテナ化アプリを実行するためのフルマネージド環境。

アーキテクチャ

プロジェクト管理用の Google Chat アプリ アーキテクチャは、HTTP エンドポイントでチャット操作イベントを受信して処理し、Vertex AI を使用してユーザー ストーリーを作成し、ユーザー ストーリーの詳細を Firestore データベースに保存します。次の図は、使用される Google Workspace リソースと Google Cloud リソースのアーキテクチャを示しています。

プロジェクト管理 Google Chat アプリのアーキテクチャ図

プロジェクト管理用の Google Chat アプリは次のように動作します。

  1. ユーザーが Chat でメッセージを送信し、プロジェクト管理の Google Chat アプリを呼び出します。呼び出す方法は、アプリに直接メッセージを送信する、スペースでアプリをメンションする、スラッシュ コマンドを入力する、のいずれかです。

  2. Chat は、Cloud Functions の HTTP エンドポイントに同期 HTTP リクエストを送信します。

  3. プロジェクト管理の Google Chat アプリが HTTP リクエストを処理します。

    1. Vertex AI はユーザー ストーリーの作成や更新に役立ちます。

    2. Firestore データベースは、ユーザーストーリーのデータを保存、取得、更新、削除します。

  4. Cloud Functions が Chat に HTTP レスポンスを返し、メッセージまたはダイアログとしてそれをユーザーに表示します。

環境を準備する

このセクションでは、Chat アプリ用の Google Cloud プロジェクトを作成して構成する方法について説明します。

Google Cloud プロジェクトを作成する

Google Cloud コンソール

  1. Google Cloud コンソールで、メニュー > [IAM と管理] > [プロジェクトを作成] に移動します。

    [プロジェクトの作成] に移動

  2. [プロジェクト名] フィールドに、プロジェクト用のわかりやすい名前を入力します。

    省略可: プロジェクト ID を編集するには、[編集] をクリックします。プロジェクトの作成後にプロジェクト ID を変更することはできません。プロジェクトの存続期間中にニーズを満たす ID を選択してください。

  3. [ロケーション] フィールドで [参照] をクリックして、プロジェクトの可能性のあるロケーションを表示します。[選択] をクリックします。
  4. [作成] をクリックします。Google Cloud コンソールで [ダッシュボード] ページが開き、数分以内にプロジェクトが作成されます。

gcloud CLI

次のいずれかの開発環境で、Google Cloud CLI(gcloud)にアクセスします。

  • Cloud Shell: gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell をアクティブにします。
    Cloud Shell を有効にする
  • ローカルシェル: ローカル開発環境を使用するには、gcloud CLI をインストールして初期化します。
    Cloud プロジェクトを作成するには、gcloud projects create コマンドを使用します。
    gcloud projects create PROJECT_ID
    作成するプロジェクトの ID を設定して、PROJECT_ID を置き換えます。

Cloud プロジェクトの課金を有効にする

Google Cloud コンソール

  1. Google Cloud コンソールで、[お支払い] に移動します。メニュー アイコン > [お支払い] > [マイ プロジェクト] をクリックします。

    [マイ プロジェクトの課金] に移動

  2. [組織を選択] で、Google Cloud プロジェクトに関連付けられている組織を選択します。
  3. プロジェクトの行で [アクション] メニュー()を開き、[お支払い情報を変更] をクリックして、Cloud 請求先アカウントを選択します。
  4. [アカウントを設定] をクリックします。

gcloud CLI

  1. 使用可能な請求先アカウントを一覧表示するには、次のコマンドを実行します。
    gcloud billing accounts list
  2. 請求先アカウントを Google Cloud プロジェクトにリンクします。
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    次のように置き換えます。

    • PROJECT_ID は、課金を有効にする Cloud プロジェクトのプロジェクト ID です。
    • BILLING_ACCOUNT_ID は、Google Cloud プロジェクトにリンクする請求先アカウント ID です。

API を有効にする

Google Cloud コンソール

  1. Google Cloud コンソールで、Google Chat API、Vertex AI API、Cloud Functions API、Firestore API、Cloud Build API、Pub/Sub API、Cloud Run Admin API を有効にします。

    API を有効にする

  2. 正しい Cloud プロジェクトで API を有効にしていることを確認し、[次へ] をクリックします。

  3. 正しい API を有効にしていることを確認し、[有効にする] をクリックします。

gcloud CLI

  1. 必要に応じて、現在の Cloud プロジェクトを gcloud config set project コマンドで作成したプロジェクトに設定します。

    gcloud config set project PROJECT_ID

    PROJECT_ID は、作成した Cloud プロジェクトのプロジェクト ID に置き換えます。

  2. gcloud services enable コマンドを使用して、Google Chat API、Vertex AI API、Cloud Functions API、Firestore API、Cloud Build API、Pub/Sub API、Cloud Run Admin API を有効にします。

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    run.googleapis.com

    Cloud Functions の前提条件は、Cloud Build、Pub/Sub、Cloud Run Admin API です。

認証と認可

このチュートリアルでは、認証と認可の構成は必要ありません。

Firestore API と Vertex AI API を呼び出すため、このチュートリアルでは、Cloud Functions に関連付けられたデフォルトのサービス アカウントで アプリケーションのデフォルト認証情報を使用します。この認証情報は設定する必要はありません。本番環境では、通常、サービス アカウントをcreateして Cloud Functions の関数に接続します。

Google Chat アプリを作成してデプロイする

Google Cloud プロジェクトを作成して構成したので、Google Chat アプリをビルドしてデプロイする準備が整いました。このセクションでは、次のことを行います。

  1. ユーザー ストーリーの保持と取得を行う Firestore データベースを作成する。
  2. 必要に応じて、サンプルコードを確認します。
  3. Chat から HTTP リクエストとして受信したイベントに応答して、Chat アプリのコードをホストして実行する Cloud Functions の関数を作成します。
  4. Google Chat API の構成ページで Google Chat アプリを作成してデプロイします。

Firestore データベースを作成する

このセクションでは、ユーザー ストーリーの保持と取得のために Firestore データベースを作成しますが、データモデルは定義しません。データモデルは、サンプルコードで model/user-story.js ファイルと model/user.js ファイルによって暗黙的に設定されます。

プロジェクト管理 Chat アプリのデータベースは、 コレクションに編成された ドキュメントに基づく NoSQL データモデルを使用します。詳細については、Firestore データモデルをご覧ください。

次の図は、プロジェクト管理 Google Chat アプリのデータモデルの概要を示しています。

Firestore データベースのデータモデル。

ルート コレクションは spaces です。各ドキュメントは、Chat アプリがストーリーを作成したスペースを表します。各ユーザー ストーリーは userStories サブコレクション内のドキュメントで表され、各ユーザーは users サブコレクション内のドキュメントで表されます。

コレクション、ドキュメント、フィールドの定義を表示する

spaces

Chat アプリで作成されたストーリーのスペース。

フィールド
Document IDString
ストーリーが作成される特定のスペースの一意の ID。Chat API のスペースのリソース名に対応します。
userStoriesSubcollection of Documents (userStories)
Chat 用アプリとそのユーザーが作成したストーリー。Firebase の userStoriesDocument ID に対応します。
usersSubcollection of Documents (user)
ストーリーを作成したユーザー、またはストーリーが割り当てられているユーザー。
displayNameString
Chat API でのスペースの表示名。ユーザーとのダイレクト メッセージでは設定されません。

userStories

Chat アプリとそのユーザーが作成したストーリー。

フィールド
Document IDString
Chat 用アプリとそのユーザーによって作成された特定のユーザー ストーリーの一意の ID。
assigneeDocument (user)
ストーリーの完了に割り当てられたユーザーのリソース名。users ドキュメントの Document ID と、Chat API でのユーザーのリソース名に対応します。
descriptionString
ソフトウェア機能についてユーザーの立場から説明します。
priorityEnum
作業を完了する緊急性。指定可能な値は LowMediumHigh です。
sizeEnum
作業量。指定可能な値は SmallMediumLarge です。
statusEnum
作業のフェーズ。有効な値は OPENSTARTEDCOMPLETED です。
titleString
ストーリーのタイトル、簡単な概要。

users

ストーリーを作成したユーザー、またはストーリーを割り当てられたユーザー。

フィールド
Document IDString
特定のユーザーの一意の ID。Firebase の userStoriesassignee と、Chat API のユーザーのリソース名に対応します。
avatarUrlString
ユーザーの Chat アバター画像をホストする URL。
displayNameString
ユーザーの Chat の表示名。

Firestore データベースを作成する方法は次のとおりです。

Google Cloud コンソール

  1. Google Cloud コンソールで、[Firestore] に移動します。メニュー > [Firestore] をクリックします。

    Firestore に移動

  2. [データベースを作成] をクリックします。

  3. [Firestore モードの選択] で、[ネイティブ モード] をクリックします。

  4. [続行] をクリックします。

  5. データベースを構成します。

    1. [データベースに名前を付ける] で、[データベース ID] を (default) のままにします。

    2. [ロケーション タイプ] で、データベースのリージョン(us-central1 など)を指定します。最適なパフォーマンスを得るには、Chat アプリの Cloud Functions の関数と同じロケーションまたは近くのロケーションを選択します。

  6. [データベースを作成] をクリックします。

gcloud CLI

  • gcloud firestore databases create コマンドを使用して、ネイティブ モードで Firestore データベースを作成します。

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    LOCATION は、Firestore リージョンの名前(us-central1 など)に置き換えます。

サンプルコードを確認する

必要に応じて、Cloud Functions の関数を作成する前に、GitHub でホストされているサンプルコードをよく確認しておいてください。

GitHub で表示

各ファイルの概要は次のとおりです。

env.js
指定した Google Cloud プロジェクトとリージョンに Chat アプリをデプロイするための環境構成変数。このファイルの構成変数を更新する必要があります。
package.jsonpackage-lock.json
Node.js プロジェクトの設定と依存関係。
index.js
チャットアプリの Cloud Functions のエントリ ポイント。HTTP リクエストからチャット イベントを読み取り、アプリ ハンドラを呼び出し、HTTP レスポンスを JSON オブジェクトとして投稿します。
controllers/app.js
メインのアプリケーション ロジック。Chat アプリの名前リンク付きコマンドとスラッシュ コマンドを処理して、インタラクション イベントを処理します。カードのクリックに応答するために、app-action-handler.js を呼び出します。
controllers/app-action-handler.js
カードクリックの [チャット操作イベント] を処理するアプリケーション ロジック
services/space-service.jsservices/user-service.jsservices/user-story-service.js
これらのファイルには、Chat スペース、ユーザー、ユーザーストーリーの操作に固有のアプリケーション ロジックの部分が含まれています。これらのファイルの関数は、app.js または app-action-handler.js によって呼び出されます。データベース オペレーションを実行するために、これらのファイル内の関数は firestore-service.js の関数を呼び出します。
services/firestore-service.js
データベース オペレーションを処理します。このファイルの関数は、services/space-service.jsservices/user-service.jsservices/user-story-service.js によって呼び出されます。
services/aip-service.js
生成 AI のテキスト予測用の Vertex AI API を呼び出します。
model/*.js
これらのファイルには、アプリケーション サービスが関数間でデータを保存して渡すために使用するクラスと列挙型の定義が含まれています。Firestore データベースのデータモデルを設定しました。
views/*.js
このディレクトリ内の各ファイルは、カード オブジェクトをインスタンス化します。このオブジェクトは、Chat アプリによって、カード メッセージまたはダイアログ アクション レスポンスとして Chat に送り返されます。
views/widgets/*.js
各ファイルは、views/ ディレクトリにカードを作成するためにアプリが使用する widget オブジェクトのタイプをインスタンス化します。
test/**/*.test.js
このディレクトリとそのサブディレクトリの各ファイルには、対応する関数、コントローラ、サービス、ビュー、ウィジェットの単体テストが含まれています。プロジェクトのルート ディレクトリで npm run test を実行すると、すべての単体テストを実行できます。

Cloud Functions の関数を作成してデプロイする

このセクションでは、プロジェクト管理 Chat アプリのアプリケーション ロジックを構成する Cloud Functions の関数を作成してデプロイします。

Cloud Functions の関数は、Chat インタラクション イベントを含む Chat からの HTTP リクエストに応答して実行されます。実行時に、Cloud Functions コードはイベントを処理し、Chat にレスポンスを返します。このレスポンスは、Chat によってメッセージ、ダイアログ、その他のタイプのユーザー操作としてレンダリングされます。必要に応じて、Cloud Functions は Firestore データベースからの読み取りや書き込みも行います。

Cloud Functions の関数を作成する方法は次のとおりです。

Google Cloud コンソール

  1. GitHub からコードを zip ファイルとしてダウンロードします。

    zip ファイルをダウンロード

  2. ダウンロードした ZIP ファイルを展開します。

    抽出されたフォルダには、Google Workspace サンプル リポジトリ全体が含まれています。

  3. 抽出したフォルダで google-chat-samples-main/node/project-management-app/ に移動し、project-management-app フォルダを ZIP ファイルに圧縮します。

    zip ファイルのルート ディレクトリには、次のファイルとフォルダが含まれている必要があります。

    • env.js
    • README.md
    • gcloudignore.text
    • package-lock.json
    • package.json
    • index.js
    • model/
    • controllers/
    • views/
    • services/
  4. Google Cloud コンソールで、[Cloud Functions] ページに移動します。

    Cloud Functions に移動

    Chat アプリの Google Cloud プロジェクトが選択されていることを確認します。

  5. [関数を作成] をクリックします。

  6. [関数の作成] ページで、関数を設定します。

    1. [環境] で、[Cloud Run Function] を選択します。
    2. [関数名] に「project-management-tutorial」と入力します。
    3. [リージョン] でリージョンを選択します。
    4. [認証] で、[未認証の呼び出しを許可] を選択します。
    5. [次へ] をクリックします。
  7. [ランタイム] で [Node.js 20] を選択します。

  8. [エントリ ポイント] で、デフォルトのテキストを削除して projectManagementChatApp と入力します。

  9. [ソースコード] で [ZIP アップロード] を選択します。

  10. [転送先バケット] で、バケットをcreateまたは選択します。

    1. [探す] をクリックします。
    2. バケットを選択します。
    3. [選択] をクリックします。

    Google Cloud は、このバケットに zip ファイルをアップロードし、コンポーネント ファイルを抽出します。Cloud Functions は、コンポーネント ファイルを Cloud Functions にコピーします。

  11. [ZIP ファイル] で、GitHub からダウンロードして解凍し、再圧縮した zip ファイルをアップロードします。

    1. [探す] をクリックします。
    2. zip ファイルに移動して選択します。
    3. [開く] をクリックします。
  12. [デプロイ] をクリックします。

    [Cloud Functions の詳細] ページが開き、関数と 2 つの進行状況インジケーター(1 つはビルド用、もう 1 つはサービス用)が表示されます。両方の進行状況インジケーターが消えてチェックマークに置き換えられると、関数はデプロイされ、使用できる状態になります。

  13. サンプルコードを編集して定数を設定します。

    1. [Cloud Functions の詳細] ページで、[編集] をクリックします。
    2. [次へ] をクリックします。
    3. [ソースコード] で [インライン エディタ] を選択します。
    4. インライン エディタで env.js ファイルを開きます。
    5. project-id をクラウド プロジェクト ID に置き換えます。
    6. 省略可: Cloud Functions の関数でサポートされているロケーションus-central1 を更新します。
  14. [デプロイ] をクリックします。

  15. 関数のデプロイが完了したら、トリガー URL をコピーします。

    1. [関数の詳細] ページで、[トリガー] をクリックします。
    2. URL をコピーします。これは、次のセクションで Chat アプリを構成するときに必要になります。

gcloud CLI

  1. GitHub からコードのクローンを作成します。

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. このプロジェクト管理 Chat アプリのコードが含まれているディレクトリに切り替えます。

    cd google-chat-samples/node/project-management-app
  3. env.js ファイルを編集して環境変数を設定します。

    1. project-id は、実際の Google Cloud プロジェクト ID に置き換えます。
    2. us-central1 は、Google Cloud プロジェクトのロケーションに置き換えます。
  4. Cloud Functions 関数を Google Cloud にデプロイします。

    gcloud functions deploy project-management-tutorial \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=projectManagementChatApp \
    --trigger-http \
    --allow-unauthenticated

    REGION は、インフラストラクチャがホストされている Cloud Functions の関数のロケーションus-central1 など)に置き換えます。

  1. 関数のデプロイが完了したら、レスポンスから url プロパティをコピーします。これは、次のセクションで Google Chat アプリを構成する際に使用するトリガー URL です。

Google Cloud コンソールで Google Chat アプリを構成する

このセクションでは、Google Cloud コンソールで Chat API を構成し、Chat アプリに関する情報(Chat アプリの名前、サポートされているスラッシュ コマンド、チャット操作イベントの送信先である Chat アプリの Cloud Functions の関数のトリガー URL など)を構成する方法について説明します。

  1. Google Cloud コンソールで、メニュー > [その他のプロダクト] > [Google Workspace] > [プロダクト ライブラリ] > [Google Chat API] > [管理] > [構成] をクリックします。

    Chat API の構成に移動

  2. [アプリ名] に「Project Manager」と入力します。

  3. [アバターの URL] に「https://developers.google.com/chat/images/quickstart-app-avatar.png」と入力します。

  4. [説明] に「Manages projects with user stories.」と入力します。

  5. [インタラクティブ機能を有効にする] をクリックしてオンにします。

  6. [機能] で、[1:1 のメッセージを受信する] と [スペースとグループの会話に参加する] を選択します。

  7. [接続設定] で [HTTP エンドポイント URL] を選択します。

  8. [HTTP エンドポイント URL] に、Cloud Functions のデプロイからコピーしたトリガー URL を https://REGION-PROJECT_ID.cloudfunctions.net/project-management-tutorial の形式で貼り付けます。gcloud CLI を使用して Cloud Functions をデプロイした場合、これは url プロパティです。

  9. Chat アプリのスラッシュ コマンドを登録します。スラッシュ コマンドを登録するには:

    1. [スラッシュ コマンド] で [スラッシュ コマンドを追加] をクリックします。
    2. 次の表に示すスラッシュ コマンドごとに、[名前]、[コマンド ID]、[説明] を入力し、スラッシュ コマンドが [ダイアログを開く] かどうかを選択してから、[完了] をクリックします。

      名前 コマンド ID 説明 ダイアログを開く
      /createUserStory 1 指定したタイトルのストーリーを作成します。 選択されていません
      /myUserStories 2 ユーザーに割り当てられたすべてのストーリーを一覧表示します。 選択されていません
      /userStory 3 指定したストーリーの現在のステータスを表示します。 選択されていません
      /manageUserStories 4 ストーリーを編集できるダイアログが開きます。 選択済み
      /cleanupUserStories 5 スペース内のすべてのストーリーを削除します。 選択されていません
  10. [公開設定] で [Workspace ドメイン内の特定のユーザーとグループにこの Chat 用アプリの利用を許可する] を選択し、メールアドレスを入力します。

  11. 必要に応じて、[ログ] で [Logging にエラーをログに記録] を選択します。

  12. [保存] をクリックします。構成が保存されたというメッセージが表示されたら、Chat アプリをテストする準備が整っています。

Chat アプリをテストする

プロジェクト管理用の Chat アプリをテストするには、アプリにメッセージを送信し、スラッシュ コマンドを使用してユーザー ストーリーを作成、編集、削除します。

  1. 信頼できるテスターとして自分自身を追加したときに指定した Google Workspace アカウントを使用して Google Chat を開きます。

    Google Chat に移動

  2. [ 新しいチャット] をクリックします。
  3. [1 人以上を追加] フィールドに、Chat アプリの名前を入力します。
  4. 結果から Chat 用アプリを選択します。ダイレクト メッセージが開きます。

  5. そのアプリの新しいダイレクト メッセージに、「Hello」と入力して enter を押します。プロジェクト管理 Chat アプリは、できることを詳しく説明するヘルプメニューを返します。
  6. ストーリーを作成するには、メッセージ バーに /createUserStory Test story と入力して送信します。プロジェクト管理 Chat アプリは、Vertex AI の生成 AI を使用して作成したユーザーストーリーの詳細を示すカード メッセージで応答します。
  7. コンソールで Firestore データベースを調べて、Chat アプリを追加したスペース、アプリを操作したユーザー、作成したユーザー ストーリーに関するレコードを確認します。

    Firestore に移動

  8. Google Chat に戻ります。

    Google Chat に移動

  9. 必要に応じて、ストーリーを編集するには [編集] をクリックします。ストーリーに問題がなければ、[保存] をクリックします。
  10. アプリでサポートされている各スラッシュ コマンドをテストします。表示するには、「/」と入力するか、Chat アプリの名前を指定します。
  11. /cleanupUserStories スラッシュ コマンドを発行して、テストユーザー ストーリーを削除します。または、アプリを削除またはアンインストールします。削除すると、そのスペースで作成されたユーザーストーリーがすべて削除されます。

トラブルシューティング

Google Chat アプリまたはカードからエラーが返されると、Chat インターフェースに「エラーが発生しました」というメッセージが表示されます。または「リクエストを処理できません」が表示されます。Chat UI にエラー メッセージが表示されない場合でも、Chat アプリまたはカードで予期しない結果が生成されることがあります(カード メッセージが表示されないなど)。

チャット UI にエラー メッセージが表示されない場合でも、チャットアプリのエラー ロギングがオンになっている場合は、エラーの修正に役立つ説明的なエラー メッセージとログデータが利用できます。エラーの表示、デバッグ、修正については、Google Chat のエラーのトラブルシューティングと修正をご覧ください。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Cloud プロジェクトを削除することをおすすめします。

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。メニュー アイコン > [IAM と管理] > [リソースの管理] をクリックします。

    Resource Manager に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。