このページでは、Google Chat の外部にあるサービスまたはツールに Google Chat アプリを接続する方法について説明します。Chat アプリは単独でも強力ですが、他のシステムと連携して動作することが多く、アカウントの接続、データアクセスの承認、追加データの表示、ユーザー設定の構成を行うには、コンパニオン アプリケーションが必要です。
前提条件
インタラクション イベントを受信して応答するように構成された Google Chat アプリ。インタラクティブな Chat アプリを作成するには、使用するアプリのアーキテクチャに基づいて、次のいずれかのクイックスタートを完了します。- HTTP サービス with Google Cloud Functions
- 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 トークンを使用して ユーザーを識別します。