このページでは、Google Chat アプリを Google Chat の外部にあるサービスまたはツールに接続する方法について説明します。Chat 用アプリは単体でも強力ですが、他のシステムと連携して動作することが多く、アカウントの接続、データアクセスの承認、追加データの表示、ユーザー設定の構成を行うコンパニオン アプリケーションが必要です。
前提条件
インタラクション イベントを受け取って応答するように構成された Google Chat 用アプリ。インタラクティブな Chat 用アプリを作成するには、使用するアプリのアーキテクチャに基づいて、次のいずれかのクイック スタートを完了します。- Google Cloud Functions を使用した HTTP サービス
- Google Apps Script
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
ユーザーに Chat 用アプリの設定をリクエストする
リクエストを完了するために、Chat 用アプリで直接完了できない追加の構成が必要な場合は、通常の返信の一部として、または非公開で、次の形式で構成 URL をユーザーに返します。
{ "actionResponse": { "type": "REQUEST_CONFIG", "url": "CONFIGURATION_URL" } }
これにより、Google Chat にユーザーにプライベート プロンプトを表示するよう指示します。ここで、CONFIGURATION_URL
は、ユーザーが追加の認証、認可、構成を行うためにアクセスするリンクです。REQUEST_CONFIG
レスポンスは、通常のレスポンス メッセージと相互に排他的です。テキスト、カード、その他の属性は無視されます。
構成リクエストを完了する
Chat 用アプリが受信するすべての MESSAGE
、ADDED_TO_SPACE
、APP_COMMAND
のインタラクション イベントには、configCompleteRedirectUrl
フィールドも含まれます。この URL は、プロセスの完了時に使用される構成 URL でエンコードする必要があります。この URL にリダイレクトすると、構成リクエストが完了したことが Google Chat に通知されます。
Chat 用アプリが起動すると、受信した特定のメッセージに応じてフローが異なります。@app help
のようなメッセージに対して、Chat 用アプリは追加の設定を必要としないメッセージで応答する必要があります。
ユーザーが元のメッセージで指定された configCompleteRedirectUrl
に正常にリダイレクトされると、Google Chat は次の手順を実行します。
- 開始ユーザーに表示されたプロンプトを消去します。
- 元のメッセージを公開に変換し、スペースの他のメンバーに表示できるようにします。
- 元のメッセージを同じ Chat 用アプリに 2 回送信します。
configCompleteRedirectUrl
にアクセスしても、影響を受けるのは 1 つのユーザー メッセージのみです。ユーザーが Chat 用アプリに複数回メッセージを送信し、その結果、複数のプロンプトが表示された場合、特定のプロンプトをクリックして認証と構成のプロセスを完了しても、その特定のメッセージにのみ影響します。他のメッセージは変更されません。
このように MESSAGE
インタラクション イベントを再送信する場合、元のイベントと同一である必要があります。ただし、MESSAGE
インタラクション イベントが異なる場合もあります。たとえば、メッセージで Chat 用アプリ A と Chat 用アプリ B の両方が言及されている場合、Chat 用アプリ B で認証する前に Chat 用アプリ A が通常のメッセージで応答すると、ユーザーはメッセージを編集できます。この場合、ユーザーが認証と構成を完了すると、Chat 用アプリ B は編集されたメッセージ テキストを受け取ります。
Chat の外部で Chat ユーザーを認証する
API の OAuth 認証をリクエストする場合など、ユーザー ID を維持しながら Chat の外部の URL にリンクする必要がある場合があります。このような場合、ユーザーを識別する最善の方法は、Google ログインで宛先アプリを保護することです。
ログイン時に発行されたID トークンを使用して、ユーザー ID を取得します。sub
クレームにはユーザーの一意の ID が含まれており、Google Chat のユーザー ID と関連付けることができます。
2 つの ID は完全に同一ではありませんが、強制的に変換できます。sub
クレームの値を Google Chat の users/{user}
に強制変換するには、値の先頭に users/
を追加します。たとえば、123
のクレーム値は、Chat 用アプリへのメッセージのユーザー名 users/123
と同等です。
関連トピック
- ユーザー インタラクションを受け取って応答する
- MyProfile アプリの例では、Google ログイン レスポンスの ID トークンを使用してユーザーを識別します。