このページでは、HTTP サービスを使用して Google Chat で動作する Google Workspace アドオンを構築する方法について説明します。
このクイックスタートでは、Google Cloud サービスを使用して HTTP サービスを構築する方法について説明します。Chat アプリを構築するには、Chat アプリがユーザーのメッセージに応答するために使用する Cloud Run functions の関数を作成してデプロイします。
HTTP アーキテクチャでは、次の図に示すように、HTTP を使用して Google Cloud またはオンプレミス サーバーと統合するように Chat を構成します。
上の図では、HTTP Chat アプリを操作するユーザーの情報フローは次のようになります。
- ユーザーが、ダイレクト メッセージまたは Chat スペースで Chat アプリにメッセージを送信します。
- HTTP リクエストが、Chat アプリのロジックを含むクラウドまたはオンプレミス システムのウェブサーバーに送信されます。
- 必要に応じて、Chat アプリのロジックを Google Workspace サービス(カレンダーやスプレッドシートなど)、他の Google サービス(マップ、YouTube、Vertex AI など)、または他のウェブサービス(プロジェクト管理システムやチケット発行ツールなど)と統合できます。
- ウェブサーバーは、HTTP レスポンスを Chat の Chat アプリ サービスに返送します。
- レスポンスがユーザーに配信されます。
- 必要に応じて、Chat アプリは Chat API を呼び出して、メッセージを非同期で投稿したり、他のオペレーションを実行したりできます。
このアーキテクチャでは、さまざまなプログラミング言語を使用して Chat アプリを設計できるため、システムにすでに存在するライブラリやコンポーネントを柔軟に使用できます。
目標
- 環境をセットアップする。
- Cloud Run functions の関数を作成してデプロイする。
- Chat アプリの Google Workspace アドオンを構成する。
- アプリをテストする。
前提条件
- Google Chat にアクセスできる Business または Enterprise Google Workspace アカウント。
- 課金を有効にした Google Cloud プロジェクト。既存のプロジェクトで課金が有効になっていることを確認するには、 プロジェクトの 課金ステータスを確認するをご覧ください。プロジェクトを作成して課金を設定するには、 Google Cloud プロジェクトを作成するをご覧ください。
環境を設定する
Google API を使用する前に、Google Cloud プロジェクトで API を有効にする必要があります。1 つの Google Cloud プロジェクトで 1 つ以上の API を有効にできます。Google Cloud コンソールで、Cloud Build API、Cloud Functions API、 Cloud Pub/Sub API、Cloud Logging API、Artifact Registry API、Cloud Run API を有効にします。
Cloud Run functions の関数を作成してデプロイする
送信者の表示名とアバター画像を含む Chat カードを生成する Cloud Run functions の関数を作成してデプロイします。Chat アプリがメッセージを受信すると、関数が実行され、カードで応答します。
Chat アプリの関数を作成してデプロイする手順は次のとおりです。
Node.js
Google Cloud コンソールで [Cloud Run] ページに移動します。
Chat アプリのプロジェクトが選択されていることを確認します。
[関数を作成] をクリックします。
[サービスの作成] ページで、関数を設定します。
- [サービス名] フィールドに「
addonchatapp」と入力します。 - [リージョン] リストでリージョンを選択します。
- [ランタイム] リストで、最新バージョンの Node.js を選択します。
- [認証] セクションで、[認証を要求する] を選択します。
- [作成] をクリックし、Cloud Run がサービスを作成するまで待ちます。 コンソールが [ソース] タブにリダイレクトされます。
- [サービス名] フィールドに「
[ソース] タブで、次の操作を行います。
- [**エントリ ポイント**] で、デフォルトのテキストを削除して「
avatarApp」と入力します。 index.jsの内容を次のコードに置き換えます。
- [保存して再デプロイ] をクリックします。
- [**エントリ ポイント**] で、デフォルトのテキストを削除して「
Python
Google Cloud コンソールで [Cloud Run] ページに移動します。
Chat アプリのプロジェクトが選択されていることを確認します。
[関数を作成] をクリックします。
[サービスの作成] ページで、関数を設定します。
- [サービス名] フィールドに「
addonchatapp」と入力します。 - [リージョン] リストでリージョンを選択します。
- [ランタイム] リストで、最新バージョンの Python を選択します。
- [認証] セクションで、[認証を要求する] を選択します。
- [作成] をクリックし、Cloud Run がサービスを作成するまで待ちます。 コンソールが [ソース] タブにリダイレクトされます。
- [サービス名] フィールドに「
[ソース] タブで、次の操作を行います。
- [エントリ ポイント] で、デフォルトのテキストを削除して「
avatar_app」と入力します。 main.pyの内容を次のコードに置き換えます。
- [保存して再デプロイ] をクリックします。
- [エントリ ポイント] で、デフォルトのテキストを削除して「
Java
Google Cloud コンソールで [Cloud Run] ページに移動します。
Chat アプリのプロジェクトが選択されていることを確認します。
[関数を作成] をクリックします。
[サービスの作成] ページで、関数を設定します。
- [サービス名] フィールドに「
addonchatapp」と入力します。 - [リージョン] リストでリージョンを選択します。
- [ランタイム] リストで、最新バージョンの Java を選択します。
- [認証] セクションで、[認証を要求する] を選択します。
- [作成] をクリックし、Cloud Run がサービスを作成するまで待ちます。 コンソールが [ソース] タブにリダイレクトされます。
- [サービス名] フィールドに「
[ソース] タブで、次の操作を行います。
- [**エントリ ポイント**] で、デフォルトのテキストを削除して「
App」と入力します。 - デフォルトの Java ファイルの名前を
src/main/java/com/google/chat/avatar/App.javaに変更します。 App.javaの内容を次のコードに置き換えます。
- [**エントリ ポイント**] で、デフォルトのテキストを削除して「
pom.xmlの内容を次のコードに置き換えます。- [保存して再デプロイ] をクリックします。
Cloud Run サービスの詳細ページが開きます。関数がデプロイされるまで待ちます。
アドオンを構成する
Cloud Run functions の関数をデプロイしたら、次の手順に沿って アドオンを作成し、Google Chat アプリをデプロイします。
Google Cloud コンソールで [Cloud Run] ページに移動します。
Cloud Run を有効にしたプロジェクトが選択されていることを確認します 。
関数のリストで [addonchatapp] をクリックします。
[サービスの詳細] ページで、関数のURL をコピーします。URL は
run.appで終わります。Google Cloud の検索フィールドで「Google Chat API」を検索し、 [Google Chat API]、[管理] の順にクリックします。
[構成] をクリックして、Google Chat アプリを設定します。
- [アプリ名] に「
Add-on Chat app」と入力します。 - [アバターの URL] に「
https://developers.google.com/workspace/add-ons/images/quickstart-app-avatar.png」と入力します。 - [説明] に
Add-on Chat appと入力します。 - [機能] で、[スペースとグループの会話に参加する] を選択します。
- [接続設定] で、[HTTP エンドポイント URL] を選択します。
- [トリガー] で、[すべてのトリガーに共通の HTTP エンドポイント URL を使用する] を選択し、Cloud Run functions の関数トリガーの URL をボックスに貼り付けます。
- [公開設定] で、 [ドメイン内の特定のユーザーおよび グループにこの Google Chat アプリの利用を許可する] を選択し、メールアドレスを入力します。
- [ログ] で、[エラーを Logging に記録する] を選択します。
- [アプリ名] に「
[保存] をクリックします。
[接続設定] で、[サービス アカウントのメール] をコピーします。アドオンに関数を呼び出す権限を付与するときに、このメールアドレスが必要になります。
次に、Chat アプリに関数を呼び出す権限を付与します。
関数を呼び出す権限を Google Chat に付与する
関数を呼び出す権限を Google Workspace アドオンに付与するには、Cloud Run サービス起動元 ロールを持つ Google Workspace アドオン サービス アカウントを追加します。
Google Cloud コンソールで [Cloud Run] ページに移動します。
Cloud Run サービスのリストで、受信関数の横にあるチェックボックスをオンにします。(関数自体はクリックしないでください)。
[権限] をクリックします。[権限] パネルが開きます。
[プリンシパルを追加] をクリックします。
[新しいプリンシパル] に、Chat アプリに関連付けられている Google Workspace アドオン サービス アカウントのメールアドレスを入力します。
サービス アカウントのメールアドレスは、 Chat API の構成ページの [接続設定] > [HTTP エンドポイント URL] > [サービス アカウントのメール] にあります。
[ロールを選択] で、[Cloud Run] > [Cloud Run 起動元] を選択します。
[保存] をクリックします。
Chat アプリは、Chat でメッセージを受信して応答する準備ができました。
Chat 用アプリをテストする
Chat アプリをテストするには、Chat アプリとのダイレクト メッセージ スペースを開いてメッセージを送信します。
信頼できるテスターとして追加したときに指定した Google Workspace アカウントを使用して Google Chat を開きます。
- [**チャットを新規作成**] をクリックします。
- [1 人以上のユーザーを追加] フィールドに、Chat アプリの名前を入力します。
結果から Chat アプリを選択します。ダイレクト メッセージが開きます。
- そのアプリの新しいダイレクト メッセージに、「
Hello」と入力してenterを押します。
Chat アプリの メッセージには、 次の図に示すように、送信者の名前とアバター画像を表示するカードが含まれています。
信頼できるテスターを追加して、インタラクティブ機能のテストの詳細を確認するには、 Google Chat アプリのインタラクティブ機能をテストするをご覧ください。
トラブルシューティング
Google Chat アプリまたは カードがエラーを返すと、 Chat インターフェースに「問題が発生しました」というメッセージが表示されます。 または「リクエストを処理できませんでした」Chat UI にエラー メッセージが表示されない場合でも、Chat アプリまたはカードが予期しない結果を生成することがあります。たとえば、カード メッセージが表示されないことがあります。
Chat UI にエラー メッセージが表示されない場合でも、 エラーの修正に役立つ説明的なエラー メッセージとログデータを利用できます Chat アプリのエラー ロギングが有効になっている場合は、。エラーの表示、デバッグ、修正については、Google Chat のエラーのトラブルシューティングと修正をご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Cloud プロジェクトを削除することをおすすめします。
- Google Cloud コンソールで、[リソースの管理] ページに移動します。 [Menu] >[IAM & Admin] >[Manage Resources] をクリックします。
- プロジェクト リストで、削除するプロジェクトを選択し、 [Delete] . をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。