概要

サービスやリソースを Google Chat に直接取り込む Google Chat アプリを構築して、ユーザーが会話から離れることなく情報を取得し、操作できるようにします。

Google Chat は、チームのコラボレーションをサポートする次の機能を備えています。

  • ユーザー間のダイレクト メッセージ。
  • スペース内のスレッド形式の会話。
  • プロジェクト単位、チーム単位などで専用のディスカッション スペースを作成できる Chat スペース。
  • スペースに参加したり、ダイレクト メッセージに返信したりできるチャットアプリ。

メッセージとスペース

Google Chat と Chat アプリ間のやり取りは、特定のスペースのコンテキストでメッセージを使用して行われます。たとえば、Chat アプリは特定の Chat スペースにテキスト(メッセージのタイプ)を送信できます。

メッセージには Chat アプリのインタラクション、テキスト、カードが含まれます。スペースには、チャットルームとダイレクト メッセージが含まれます。

上の図は、メッセージとスペースで使用できるさまざまなタイプのインタラクションとコンテキストを示しています。

  • Google Chat と Chat アプリ間のメッセージは、定義されたメッセージ形式に従います。各メッセージは、JSON オブジェクトで構成され、コンポーネントによって、ユーザー ID、スタイル、コンテンツ、その他のメッセージ要素が示されます。チャットアプリは、次の種類のメッセージを送信できます。

    • テキスト メッセージには、限られたテキスト形式が設定された書式なしテキスト コンテンツが含まれます。
    • カード メッセージは、スペースに表示されるカードの形式、コンテンツ、動作を定義します。たとえば、カード メッセージに、ユーザーから情報を収集するためのダイアログを開くリンク付きのボタンを含めることができます。


      カードビルダーでカードをデザインしてプレビューする。

      カードビルダーを開く

  • Google Chat では、スペースに次のコンテキストがあります。

    • 名前付きスペースまたはグループ スペースは複数のユーザーに表示されます。
    • ダイレクト メッセージは、そのスペースのユーザーにのみ表示されます。

使用例

Chat アプリを Chat のような会話型プラットフォームに追加すると、コンテキストを変更することなく、ユーザーが質問やコマンドを発行できるようになります。Chat アプリはバックエンドで他のシステムにアクセスし、それらのシステムの仲介役として機能します。

統一された認知エクスペリエンスを維持しながら、幅広いリソースとツールへのアクセスを提供するこの機能により、次のような多くのタイプのアプリケーションのフレームワークが提供されます。

  • ワークフロー管理
  • セットアップと構成
  • 注文の生成
  • 検索
  • データ収集

Chat スペース内から Chat アプリにリクエストできる操作の例を次に示します。

  • 情報の検索 - Chat アプリは、ユーザーが入力した構造化クエリまたはフリーテキストクエリに基づいて情報を取得できます。
  • ファイル チケット - Chat アプリは、ユーザーから提供された情報を使用して、インシデント レポートやその他のアーティファクトを生成できます。
  • 作業の調整 - Chat アプリを使用すると、「チームメモリ」の提供やリソースのスケジューリングなど、チームメンバーの相互作用を強化できます。

Chat アプリを作成する

このセクションでは、作成できる Chat アプリの種類をいくつか説明します。

構築する Chat アプリごとに、Google Cloud コンソールで個別の Google Cloud プロジェクトを作成する必要があります。Chat アプリをデプロイして他の Google Chat ユーザーと共有するには、それらのユーザーを Google Workspace Marketplace に公開してリストします。詳細については、Chat アプリのデプロイの作成と管理をご覧ください。

インタラクティブな Chat アプリ

多くの Chat アプリでは、ユーザーが直接 Chat アプリにメッセージを送信したり操作したりできます。インタラクティブな Chat アプリでは、次のことが可能になります。

  • 名前リンクスラッシュ コマンド、ダイレクト メッセージにテキスト メッセージやカード メッセージで応答します。
  • ダイアログを開いて、フォームデータの入力などの複数のステップをユーザーが完了できるようにします。
  • プレビュー リンク: ユーザーが会話から直接アクションを起こせるようにするため、有益な情報を含むカードを追加できます。

ユーザーとやり取りするには、Chat アプリがインタラクション イベントを受信して応答できなければなりません。インタラクティブな Chat アプリを作成するには、Google Chat アプリ操作イベントの受信と応答をご覧ください。

非対話型の Chat アプリ

また、ユーザーは Google Chat アプリを直接操作できないものの、Chat アプリが Google Chat API を直接呼び出すという非対話型のアプリにすることもできます。たとえば、スペースでメッセージを送信する Chat アプリを作成できますが、ユーザーは Chat アプリに応答できません。このタイプの Chat アプリのアーキテクチャは、アラーム レポートなどに役立ちます。詳細については、Google Chat API の概要をご覧ください。

イベント ドリブンの Chat アプリ

Chat アプリでは、Google Workspace Events API を使用して Chat リソースに関するイベントに登録できます。サブスクリプションを使用すると、登録された Google Workspace リソースに対する変更を表すイベントに関する情報を Chat アプリが受信できます。たとえば、Chat アプリは、Chat アプリが登録しているスペースの変更(スペースに追加された新しいメンバーにウェルカム メッセージを送信するなど)に応答できます。詳細については、Google Chat イベントに登録するをご覧ください。

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

Chat API には、アプリを Chat スペースに統合するためのさまざまな方法が用意されていますが、Chat アプリのロジックを実装する具体的な方法は用意されていません。コマンドドリブンの Chat アプリを作成することも、任意の言語処理や AI サービスやモジュールを自由に使用することもできます。これは、次のようなさまざまなプラットフォームで行うことができます。

  • AppSheet
  • Google Apps Script
  • Dialogflow
  • Pub/Sub
  • Google Cloud またはオンプレミスの HTTP サーバー

詳細については、Chat アプリのアーキテクチャを選択するをご覧ください。

アプリによるユーザーデータへのアクセス

Chat アプリは、呼び出されたときに、誰が、どのようなコンテキストで、起動元をどのように処理したかを把握する必要があります。この基本的な ID データ以外のデータにアクセスするには、認証によって Chat アプリにアクセス権を付与する必要があります。

  • デフォルトでは、Chat アプリが読み取れるのは、アプリを呼び出すユーザー、またはアプリを呼び出す同じメッセージ内で @メンションされたユーザーの基本的な ID のみです。この情報には、ユーザーの表示名、ユーザー ID、メールアドレス、アバター画像が含まれます。
  • リンクをプレビューする Chat アプリの場合、Chat アプリは、Chat アプリに構成された URL パターンに一致する、メッセージに追加された URL を読み取ることができます。

  • 拡張機能(すべてのメッセージやスペース内のメンバーリストの読み取りなど)をユーザーに提供するために Chat アプリが他のデータにアクセスする必要がある場合は、そのデータにアクセスできるように認証を設定します。ユーザーデータにアクセスする場合、Chat アプリはユーザーにアクセス権を要求するよう求めるプロンプトを表示し、ユーザーがそれを付与する必要があります。詳細については、Chat アプリを他のサービスやツールに接続するをご覧ください。

Google Chat API の動作を確認するには、
Google Workspace のデベロッパー チャンネルでは、ヒント、アドバイス、最新機能に関する動画をご覧いただけます。