このページでは、Google Chat アプリを使用して Chat 用アプリを作成する Pub/Sub。このタイプの Google Chat アプリのアーキテクチャを 組織にファイアウォールがあると、Chat がアクセスできない メッセージを送信できない場合や、 Chat アプリは Google Workspace Events API。ただし、 アーキテクチャには次のような制限があります。 Chat アプリは、チャット アプリから 非同期メッセージ:
- ダイアログは使用できません。 。代わりに、 カード メッセージ。
- 同期レスポンスを使用して個々のカードを更新することはできません。代わりに、
メッセージ全体を削除するには、
patch
メソッドを呼び出します。
次の図は、VM のアーキテクチャを Pub/Sub で構築された Chat アプリ:
上の図では、Pub/Sub を操作するユーザーが Chat アプリには、次のような情報の流れがあります。
ユーザーが Chat でメッセージを ダイレクト メッセージまたはスペースで Chat スペースでイベントが発生したとき Chat 用アプリに有効な subscription。
Chat は Pub/Sub トピックにメッセージを送信します。
アプリケーション サーバー。アプリケーション サーバー、 Chat 用アプリのロジックが含まれており、 Pub/Sub トピックを作成する必要があります。
必要に応じて、Chat アプリは Chat API を使用して、メッセージを非同期で投稿したり、 必要があります。
前提条件
Java
- 企業または大企業 以下にアクセスできる Google Workspace アカウント Google Chat。
- 課金を有効にした Google Cloud プロジェクト。既存のプロジェクトで課金が有効になっていることを確認するには、 プロジェクトの課金ステータスを確認できます。プロジェクトを作成して課金を設定するには、以下をご覧ください。 Google Cloud プロジェクトを作成します。
- Java 11 以降
- Maven パッケージ管理ツール
Python
- 企業または大企業 以下にアクセスできる Google Workspace アカウント Google Chat。
- 課金を有効にした Google Cloud プロジェクト。既存のプロジェクトで課金が有効になっていることを確認するには、 プロジェクトの課金ステータスを確認できます。プロジェクトを作成して課金を設定するには、以下をご覧ください。 Google Cloud プロジェクトを作成します。
- Python 3.6 以降
- pip パッケージ管理ツール
Node.js
- 企業または大企業 以下にアクセスできる Google Workspace アカウント Google Chat。
- 課金を有効にした Google Cloud プロジェクト。既存のプロジェクトで課金が有効になっていることを確認するには、 プロジェクトの課金ステータスを確認できます。プロジェクトを作成して課金を設定するには、以下をご覧ください。 Google Cloud プロジェクトを作成します。
- Node.js 14 以降
- npm パッケージ管理ツール
-
初期化された Node.js プロジェクト。新しいプロジェクトを初期化するには、プロジェクトを作成し、
新しいフォルダに移動してから、コマンドライン インターフェースで次のコマンドを実行します。
npm init
環境を設定する
Google API を使用する前に、Google Cloud プロジェクトで有効にする必要があります。 1 つの Google Cloud プロジェクトで 1 つ以上の API を有効にできます。Google Cloud コンソールで、Google Chat API と Pub/Sub API を有効にします。
Pub/Sub を設定する
Pub/Sub トピックを作成する Google Chat でメッセージを送信できます。Google Cloud コンソールの トピックは 1 つのみ
Chat に公開権限を付与する トピックに Pub/Sub パブリッシャー ロールを サービス アカウント:
chat-api-push@system.gserviceaccount.com
サービス アカウントを作成する Chat 用アプリでの Pub/Sub による承認と 秘密鍵ファイルを作業ディレクトリに保存します。
pull サブスクリプションを作成する 付けます。
サブスクリプションに Pub/Sub サブスクライバー ロールを割り当てます。 先ほど作成したサービス アカウント。
スクリプトを作成する
Java
CLI で、サービス アカウントの認証情報を指定します。
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
CLI で、Google Cloud プロジェクト ID を指定します。
export PROJECT_ID=PROJECT_ID
CLI で、作成する Pub/Sub サブスクリプションのサブスクリプション ID を 次の操作を行います。
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
作業ディレクトリに、
pom.xml
という名前のファイルを作成します。pom.xml
ファイルに次のコードを貼り付けます。作業ディレクトリで、ディレクトリ構造
src/main/java
を作成します。src/main/java
ディレクトリに、Main.java
という名前のファイルを作成します。Main.java
に次のコードを貼り付けます。
Python
CLI で、サービス アカウントの認証情報を指定します。
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
CLI で、Google Cloud プロジェクト ID を指定します。
export PROJECT_ID=PROJECT_ID
CLI で、作成する Pub/Sub サブスクリプションのサブスクリプション ID を 次の操作を行います。
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
作業ディレクトリに、
requirements.txt
という名前のファイルを作成します。requirements.txt
ファイルに次のコードを貼り付けます。作業ディレクトリに、
app.py
という名前のファイルを作成します。app.py
に次のコードを貼り付けます。
Node.js
CLI で、サービス アカウントの認証情報を指定します。
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
CLI で、Google Cloud プロジェクト ID を指定します。
export PROJECT_ID=PROJECT_ID
CLI で、作成する Pub/Sub サブスクリプションのサブスクリプション ID を 次の操作を行います。
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
作業ディレクトリに、
package.json
という名前のファイルを作成します。package.json
ファイルに次のコードを貼り付けます。作業ディレクトリに、
index.js
という名前のファイルを作成します。index.js
に次のコードを貼り付けます。
アプリを Chat に公開する
Google Cloud コンソールで、メニュー > API とサービス > 有効な API とサービス > Google Chat API > [Configuration] に移動します。
Pub/Sub 用に Chat 用アプリを構成します。
- [アプリ名] に「
Quickstart App
」と入力します。 - [アバターの URL] に「
https://developers.google.com/chat/images/quickstart-app-avatar.png
」と入力します。 - [説明] に「
Quickstart app
」と入力します。 - [機能] で、[1:1 のメッセージを受信する] と [スペースとグループの会話に参加する] を選択します。
- [接続設定] で [Cloud Pub/Sub] を選択し、 先ほど作成した Pub/Sub トピックの名前。
- [公開設定] で [ドメイン内の特定のユーザーおよびグループにこの Google Chat アプリの利用を許可する] を選択し、メールアドレスを入力します。
- [ログ] で、[エラーを Logging にロギング] を選択します。
- [アプリ名] に「
[保存] をクリックします。
Chat でメッセージを受信して返信する準備が整いました。
スクリプトを実行する
CLI で作業ディレクトリに切り替えて、スクリプトを実行します。
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
コードを実行すると、アプリケーションは公開されたメッセージのリッスンを開始します。 Pub/Sub トピックに公開されます
Chat 用アプリをテストする
Chat 用アプリをテストするには、スペースを開いてダイレクト メッセージ スペースを開き、 メッセージを送信します。
Google Workspace アカウントを持つユーザーを ご自身で Trusted Tester として追加した際に提供される通知もあわせてご確認ください。
- [ チャットを新規作成] をクリックします。
- [1 人以上のユーザーを追加] フィールドに、招待する Chat アプリ。
結果から Chat 用アプリを選択します。ダイレクト というメッセージが開きます。
- アプリとの新しいダイレクト メッセージで、「
Hello
」と入力して押します。enter
。
Trusted Tester を追加し、インタラクティブ機能のテストについて詳しくは、以下をご覧ください。 インタラクティブ機能のテスト Google Chat アプリ。
トラブルシューティング
Google Chat アプリまたは card がエラーを返した場合、 Chat のインターフェースに「エラーが発生しました」というメッセージが表示されている。 または「リクエストを処理できません」が表示されます。場合によっては、Chat の UI が エラー メッセージは表示されませんが、Chat 用アプリまたは 予期しない結果が生じた場合たとえば、カード メッセージに 表示されます。
Chat UI にエラー メッセージが表示されない場合がありますが、 エラーの修正に役立つ、わかりやすいエラー メッセージとログデータ Chat 用アプリのエラーロギングが有効になっている場合。表示のヘルプについては、 エラーの修正について詳しくは、このモジュールの Google Chat のエラーのトラブルシューティングと修正
クリーンアップ
サービス アカウントに対する Google Cloud アカウントへの課金を回避するために、 リソースがある場合は、その Terraform 構成ファイルを できます。
-
Google Cloud コンソールで、[リソースの管理] ページに移動します。[
メニュー > IAM と管理者
> [リソースの管理] をクリックします。
<ph type="x-smartling-placeholder"></ph> Resource Manager に移動
- プロジェクト リストで、削除するプロジェクトを選択し、[ を削除します。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックして削除します。 できます。
関連トピック
Chat 用アプリに機能を追加するには、 次のとおりです。