Google Chat アプリのアーキテクチャを選択する

このページでは、一般的なサービス アーキテクチャのアプローチについて説明します。 作成する方法を学びます。既存のアプリへの を Google Chat に統合すると、既存の実装をそのまま使用することも、適用することもできます。 新しい Chat アプリを作成する場合は、 アーキテクチャを選択できるように、同様の情報をいくつかの異なる方法で提示します。 ユースケースに最適なオプションです

特長と機能別の概要

次の表に、Google Compute Engine の Chat 用アプリと、 ()サービス アーキテクチャのスタイル。 場合によっては、別のアーキテクチャ スタイルを使用して、 ユースケースには適していません スタイル()。

特長と機能

ウェブまたは HTTP サービス

Pub/Sub

Webhook

Apps Script

AppSheet

Dialogflow

スクリプト

対象読者

あなたのチーム

あなたの組織

一般ユーザー

ユーザー インタラクティビティ

自然言語処理を使用する

メッセージ パターン

同期メッセージを送受信する

同期メッセージの送受信と非同期メッセージの送信

非同期メッセージのみを送信する

外部システムから 1 つの Chat スペースにメッセージを送信する

他のサービスやシステムにアクセスする

他の Google サービスとの統合

ファイアウォールの内側で通信する

Chat イベントのクエリまたはサブスクライブ

コーディングとデプロイのスタイル

コードを使わずに開発

ローコードでの開発

任意のプログラミング言語での開発

簡素化された DevOps

完全な DevOps と CI/CD 管理

サービス アーキテクチャのスタイル

このセクションでは、一般的なアーキテクチャのアプローチについて説明します。 作成することもできます。

ウェブまたは HTTP サービス

ウェブサービスまたは HTTP サービスは、以下の理由から、最も一般的なデプロイアーキテクチャです。 デベロッパーは最も柔軟性が高く、 Chat 用アプリ。このアーキテクチャは、次のような場合に推奨されます。 ユースケース:

  • Chat アプリは、GKE クラスタ上に Google Workspace Marketplace:
  • Chat アプリは、すべてのメッセージを送受信できます。 パターン: 同期メッセージの送受信、非同期の送信 外部システムからのメッセージの送信に使用できます。
  • Chat アプリは、あらゆるプログラミング言語 あります。
  • Chat アプリには完全な DevOps と CI/CD が必要 あります。
  • Chat 用アプリサービスは、クラウドまたは 構成することもできます。

この設計では、Google Chat を新しい Google Workspace の リモート サービスに接続できます。

オンプレミス サーバーでウェブサービスを使用する Chat アプリのアーキテクチャ。

上の図では、HTTP HTTPS サーバーを操作しているユーザー Chat アプリには、次のような情報の流れがあります。

  1. ユーザーが Chat スペースでメッセージを Chat アプリ。
  2. HTTP リクエストは、ウェブサーバーまたは Chat 用アプリを含むオンプレミス システム できます。
  3. 必要に応じて、Chat 用アプリのロジックで、 サードパーティのサービス(プロジェクト管理システム、 チケット発行ツールを使用します
  4. ウェブサーバーが HTTP レスポンスを Chat での Chat アプリサービス。
  5. レスポンスがユーザーに送信されます。
  6. 必要に応じて、Chat アプリは Chat API を使用して、メッセージを非同期で投稿したり、 必要があります。

このアーキテクチャでは、既存のライブラリと Cloud Logging を システムに存在する Chat アプリはさまざまなプログラミング言語を使用して設計できます。 このアーキテクチャを実装する方法はいくつかあります。Google Cloud では、 Cloud Functions、Cloud Run、App Engine を使用できます。使用を開始するには、以下をご覧ください。 Google Chat アプリを作成します

Pub/Sub

Chat 用アプリがファイアウォールの内側で実装されている場合、 Chat から HTTP 呼び出しを行うことができません。一つのアプローチとして、 Pub/Sub を Chat 用アプリの実装を有効にして、メッセージを Chat のメッセージを保持するトピックです。Pub/Sub は非同期の メッセージを生成するサービスとサービスを切り離す 自動的に処理されますこのアーキテクチャは、次のような場合に推奨されます。 ユースケース:

  • Chat アプリはファイアウォールの内側で構築されています。
  • Chat アプリ ユーザーが Chat スペースに関するイベントを受信できます。
  • Chat アプリが組織にデプロイされます。
  • Chat アプリは、 非同期メッセージを送信できます
  • Chat アプリは、あらゆるプログラミング言語 あります。
  • Chat アプリには完全な DevOps と CI/CD が必要 あります。

次の図は、VM のアーキテクチャを Pub/Sub で構築された Chat アプリ:

Pub/Sub を使用して実装された Chat アプリのアーキテクチャ。

上の図では、Pub/Sub を操作するユーザーが Chat アプリには、次のような情報の流れがあります。

  1. ユーザーが Chat でメッセージを ダイレクト メッセージまたはスペースで Chat スペースでイベントが発生したとき Chat 用アプリに有効な subscription

  2. Chat は Pub/Sub トピックにメッセージを送信します。

  3. アプリケーション サーバー。アプリケーション サーバー、 Chat 用アプリのロジックが含まれており、 Pub/Sub トピックを作成する必要があります。

  4. 必要に応じて、Chat アプリは Chat API を使用して、メッセージを非同期で投稿したり、 必要があります。

使用を開始するには、以下をご覧ください。 Pub/Sub を Chat アプリのエンドポイントとして使用する

Webhook

Google Chat で Gmail からのみメッセージを送信できる 特定の Chat スペースにメッセージを送信するには、 Webhook URL。このアーキテクチャは、次のユースケースにおすすめです。

  • Chat アプリがチームにデプロイされます。
  • Chat アプリは、外部 IP アドレスから 単一の Chat スペースに統合できます。

このアーキテクチャでは、Chat 用アプリは 特定の Chat スペースに割り当てられ、ユーザーによる操作が 見てみましょう。

着信 Webhook が Chat に非同期メッセージを送信するためのアーキテクチャ。

上の図で、Chat 用アプリには次のものが含まれます。 情報のフロー:

  1. Chat アプリのロジックは、Google Chat のメッセージ アプリで サードパーティのサービス(プロジェクト管理システム、 チケット発行ツールを使用します
  2. Chat 用アプリのロジックは、クラウドまたは Webhook URL を使用してメッセージを送信できる 割り当てることができます。
  3. ユーザーは次の場所で Chat アプリのメッセージを受信できます: その特定の Chat スペースにはアクセスできないものの、 Chat アプリ。

このタイプの Chat 用アプリは、 他のチームとのチャット スペースや、他のチーム Google Workspace Marketplace着信 Webhook は、 アラートやステータスを報告したり、特定のタイプの Chat アプリのプロトタイピング。

使用を開始するには、以下をご覧ください。 Webhook を使用して Chat にメッセージを送信する

Apps Script

Chat 用アプリのロジックはすべて、Google Chat で JavaScriptGoogle Apps Script: コンテナ化されたアプリケーションのローコード開発プラットフォーム Chat 用アプリ。Apps Script は 認証フローとユーザー認証用の OAuth 2.0 トークンです。次を使用: 一般公開の Chat 用アプリをビルドできます。ただし、 推奨理由: 1 日あたり 割り当てと上限があります。

このアーキテクチャは、次のユースケースにおすすめです。

  • Chat アプリがチームにデプロイされ、 組織によって異なります。
  • Chat アプリは、すべてのメッセージを送受信できます。 パターン: 同期メッセージの送受信、非同期の送信 外部システムからのメッセージの送信に使用できます。
  • Chat アプリでは DevOps の簡素化が必要 あります。

このアーキテクチャは、Google Chat アプリにも統合されている 他の Google Workspace や Google サービスと統合する Google スプレッドシート、Google スライド、Google カレンダー、Google ドライブ、 Google マップ、YouTube など、さまざまな場所に表示されます。 次の図をご覧ください。

Apps Script を使用して実装された Chat アプリのアーキテクチャ。

上の図では、Apps Script を操作するユーザーが Chat アプリには、次のような情報の流れがあります。

  1. ユーザーが Chat 用アプリにメッセージを送信すると、 ダイレクト メッセージまたは Chat スペースで作成できます。
  2. Chat 用アプリのロジックは、 Google Cloud にある Apps Script は、 表示されます。
  3. 必要に応じて、Chat 用アプリのロジックを Google Workspace サービス(Google カレンダーや スプレッドシート、またはその他の Google サービス(Google マップなど) YouTube で管理できます。
  4. Chat アプリのロジックは、 Chat での Chat アプリサービス。
  5. レスポンスがユーザーに送信されます。

使用を開始するには、以下をご覧ください。 Apps Script を使用して Chat 用アプリを作成する

AppSheet

コードなしでドメイン共有の Chat 用アプリを作成できます AppSheet を使用する。開発プロセスを簡素化するには、 自動構成モードと次のテンプレートを使用して一般的な Chat 用アプリのアクション。ただし、 AppSheet ウェブアプリの機能は Chat アプリではご利用いただけません

このアーキテクチャは、次のユースケースにおすすめです。

  • Chat アプリが自分とチームにデプロイされます。
  • Chat アプリは、 非同期メッセージを送信できます
  • Chat アプリでは DevOps の簡素化が必要 あります。

次の図は、VM のアーキテクチャを AppSheet で構築された Chat アプリ:

AppSheet で実装された Chat アプリのアーキテクチャ。

上の図では、ユーザーが AppSheet を操作しています。 Chat アプリには、次のような情報の流れがあります。

  1. ユーザーが Chat でメッセージを ダイレクト メッセージまたはスペースで Chat スペース。
  2. Chat 用アプリのロジックは、 Google Cloud 内にある AppSheet は、 表示されます。
  3. 必要に応じて、Chat 用アプリのロジックを Google Workspace サービス(Apps Script や Google スプレッドシート。
  4. Chat アプリのロジックは、 Chat での Chat アプリサービス。
  5. レスポンスがユーザーに送信されます。

使用を開始するには、以下をご覧ください。 AppSheet を使用して Chat 用アプリを作成します

Dialogflow

Chat 用アプリは、Dialogflow( 自動会話と動的な応答のための自然言語プラットフォームを 開発しました このアーキテクチャは、次のユースケースにおすすめです。

  • Chat アプリは、 ブロックすることもできます。
  • Chat アプリは自然言語処理を使用します。 ユーザーに対応したり操作したりできます

次の図は、VM のアーキテクチャを Dialogflow で構築された Chat アプリ:

Dialogflow を使用して実装された Chat アプリのアーキテクチャ。

上の図では、Dialogflow を操作するユーザー Chat アプリには、次のような情報の流れがあります。

  1. ユーザーが Chat でメッセージを ダイレクト メッセージまたはスペースで Chat スペース。
  2. Google Cloud に存在する Dialogflow 仮想エージェントは、 メッセージを処理してレスポンスを生成します。
  3. 必要に応じて、 Dialogflow Webhook、 Dialogflow エージェントは、Google Cloud などの外部のサードパーティ サービスとやり取りできます。 チケット発行ツールとして 使用できます
  4. Dialogflow エージェントは、API 呼び出しに対するレスポンスを Chat での Chat アプリサービス。
  5. レスポンスが Chat スペースに配信されます。

使用を開始するには、以下をご覧ください。 Dialogflow Google Chat アプリを作成します

コマンドライン アプリケーションまたはスクリプト

メッセージを送信するためのコマンドライン アプリケーションまたはスクリプトを作成できます。 メッセージの作成、メッセージの作成などの操作は、 スペースのメンバーの管理を任意の方法で行えるため、 Chat 用アプリの呼び出しや応答を チャット。このアーキテクチャは、次のような場合に推奨されます。 ケース:

  • Chat アプリは、あらゆるプログラミング言語 あります。
  • Chat アプリは非同期メッセージのみを送信できます。

次の図にアーキテクチャを示します。

コマンドライン アプリケーションまたはスクリプトで実装された Chat アプリのアーキテクチャ。

上の図では、Chat 用アプリに 次のような流れになります。

  1. Chat アプリは Chat API を呼び出して、 別のオペレーションを実行することもできます。
  2. リクエストされた操作は Chat によって実行されます。
  3. 必要に応じて、Chat 用アプリが 使用できます。

Chat 用アプリのロジックの実装

Chat によって、 Chat 用アプリのロジック。固定構文のコマンドを作成して 高度な AI および言語処理のライブラリやサービスの使用、 イベントに反応する方法など 特定の目標に適した方法で操作できます

ユーザー操作を処理する

Chat アプリでは ユーザーの操作を受信して応答する 使用できます。ユーザー操作とは、ユーザーが Chat 用アプリの呼び出しや操作を行えます。

コマンド パーサー

コマンドドリブンの Chat アプリは、 Chat 用アプリのインタラクション イベント 次に、このコンテンツからコマンドとパラメータを抽出します。例については、以下をご覧ください。 Chat ユーザーとやり取りするためのスラッシュ コマンドを設定します

もう 1 つの方法は、メッセージをトークン化し、コマンドを抽出して コマンドを各コマンドのハンドラ関数にマッピングするディクショナリを参照します。

ダイアログ ベースのユーザー インターフェース

ダイアログベースのアプリは Chat 用アプリのインタラクション イベント 通常のショッピングキャンペーンと ダイアログ ユーザーは Chat 用アプリとやり取りできます。 フォームの記入 アクションの要求などです

ユーザーがダイアログでアクションを実行するたびに、新しいインタラクション イベントが発生します。 Chat アプリに送られます。この通知に対して、チャット アプリは メッセージを送信したりすることもできます。

自然言語処理

Chat アプリの実装の多くは自然言語を使用 処理(NLP)を使用してユーザーが求めているものを判別します。データ アナリストが お好みの方法で NLP を実装できます。

自然言語処理(NLP)は Chat 用アプリの実装 Dialogflow ES または Dialogflow CX Chat のインテグレーション 自動化された会話と動的な対話のための仮想エージェントを できます。

Chat に積極的にリクエストを発行する

Chat アプリは、他の参加者にメッセージやその他のリクエストを Google Chat 内での直接のユーザー操作ではトリガーされない チャット。代わりに、これらの Chat アプリは (たとえば、サードパーティ アプリケーション、コマンドライン ツール、 呼び出すことはできますが、ユーザーはこれらを Chat で直接使用できます。

非対話型の Chat アプリでは、Chat API を使用して その他の種類のリクエストを Chat に送信できます。

会話パターン

Chat 用アプリをどのように管理すればよいか、 やり取りできます。以降のセクションでは、Google Chat のメッセージ履歴が 実装する方法を確認しましょう。

呼び出しとレスポンス(同期)

同期の呼び出しとレスポンスのパターンでは、 Chat アプリは、ブラウザ上で できます。ユーザーが Chat 用アプリに送信する 1 件のメッセージ Chat アプリからのレスポンスが 1 つにまとめられます。 次の図をご覧ください。

同期メッセージのアーキテクチャ。

上の図では、Google Chat のメッセージ履歴を Chat アプリには、次のような情報の流れがあります。

  1. ユーザーが同期メッセージを Chat アプリ(「次のミーティングは何?」など)
  2. Chat アプリは、同期メッセージを たとえば、「Dr.Silva、2:30」。

このタイプの会話パターンでは、 ウェブサービス、Pub/Sub、Pub/Sub を使用した Chat アプリのアーキテクチャ Apps Script、AppSheet、または Dialogflow です。

複数のレスポンス(非同期)

複数レスポンスのパターンには、同期型と非同期型があります。 ブロックすることもできます。このパターンは、ユーザー間の双方向の通信を特徴としています。 Chat アプリを使用して、 Chat アプリが任意の数の追加メッセージを生成する。 次のように構成されます。

非同期メッセージのアーキテクチャ。

上の図では、Google Chat のメッセージ履歴を Chat アプリには、次のような情報の流れがあります。

  1. ユーザーが同期メッセージを Chat アプリ(「トラフィックの監視」など)。
  2. Chat アプリは、同期メッセージを リクエストを承認します(例: 「Monitoring on」)。
  3. その後、Chat アプリは 1 つ以上の非同期メッセージを (例: 「新しいトラフィック」)。
  4. ユーザーは、追加の同期メッセージを Chat アプリ(「トラフィックを無視する」など)
  5. Chat アプリは、同期メッセージを リクエストを承認します(例: 「モニタリング オフ」)。

このタイプの会話パターンでは、 ウェブサービス、Pub/Sub、Pub/Sub を使用した Chat アプリのアーキテクチャ (Apps Script、AppSheet)です。

イベントのクエリまたはサブスクライブ(非同期)

非同期のイベント ドリブン パターンでは、Chat 用アプリは イベントを受信するために、Chat API に対してクエリを実行するか、 スペースまたはユーザーのサブスクリプションを Google Workspace Events API。イベントは、Chat に対する変更を表します。 新しいメッセージが投稿されたときやユーザーがスペースに参加したときなどです。 イベント ドリブンな Chat アプリ イベント ペイロードを調べて、変更された Chat に関するデータを取得する 適宜対応できます

Chat アプリは、イベントなど、さまざまな種類のイベントを受信できます。 スペース、メンバーシップ、メッセージ、リアクションについて学びました。特定の Chat アプリは、API 呼び出しによってイベントを受信します。 有効なサブスクリプションを通じて、Google Chat で Chat アプリは、必要に応じて任意の数のメッセージを 非同期のレスポンスを返し、 Chat API。

このタイプのロジックを使用して、チケットなどの外部システムを更新できます。 Chat スペースにメッセージを送信したり、 たとえば、新規ユーザーが参加したときにウェルカム メッセージを送信するなど、 できます。

次の図は、イベント ドリブン型の会話の例を示しています。 パターン:

Chat イベントのサブスクリプションのアーキテクチャ

上の図では、Google Chat と Gmail の間のやり取りが Chat アプリには、次のような情報の流れがあります。

  1. Chat アプリが Google Chat スペースに登録されます。
  2. Chat アプリが登録されているスペース できます。
  3. Chat アプリは、指定したトピックにイベントを配信します。 Pub/Sub: サブスクリプションの通知エンドポイントとして機能します。「 リソースの変更内容に関するデータが含まれます。
  4. Chat アプリは イベントを含む Pub/Sub メッセージを受け取り、必要に応じてアクションを実行します。

このタイプの会話パターンでは、 Pub/Sub(ウェブサービス)を使用した Chat アプリのアーキテクチャ 使用できます。

イベントの受信と応答の詳細については、以下をご覧ください。 Google Chat のイベントから予定を操作する

Chat アプリからの一方向のメッセージ

Chat アプリのパターンからの一方向メッセージを使用すると、 Chat アプリは、 ユーザーが Google Chat と直接やり取りすることは Chat アプリ。このパターンは会話型または会話型でない アラーム レポートなどに役立ちます。 次の図をご覧ください。

一方向メッセージのアーキテクチャ。

上の図では、ユーザーと同じスペースのユーザーは、 Chat アプリには、次のような情報の流れがあります。

  • Chat アプリが非同期メッセージを送信します。 Chat API を呼び出すか、Webhook に投稿することでユーザーに通知できます。 URL(例: 「Queue overflow alert」)。
  • 必要に応じて、Chat 用アプリは追加の 非同期メッセージです。

このタイプの会話パターンでは、 ウェブサービス、Webhook、Cloud Bigtable を使用する コマンドライン アプリケーションである Apps Script、AppSheet、 使用できます。

Chat アプリへの一方向のメッセージ

Chat アプリのパターンへの一方向メッセージにより、ユーザーは Chat アプリにメッセージを送信する際は、 リクエストの処理中に Chat アプリが応答する。 このアーキテクチャは技術的には可能ですが、結果的に このパターンは使用しないことを強くおすすめします。