Dialogflow と Google Chat の統合

Dialogflow を Google Chat と統合すると、両方のサービスの機能を利用できます。

  • Google Chat。1 対 1 の会話とチャット スペース用のフロントエンド ユーザー インターフェースを備えたメッセージング プラットフォームを提供します。Google Chat では、アイコン、画像、ボタン、テキスト入力フィールド、Google マップなどのアプリを組み込んだカードを作成することで、ユーザー インターフェースを強化できます。
  • Dialogflow。自動会話と動的レスポンスのための自然言語理解プラットフォームを提供します。Dialogflow を使用すると、ユーザーのインテントを解釈してフルフィルメント(予約のスケジューリングや購入の処理など)を行うことができます。

Google Chat を使用してユーザーのリクエストを処理することもできますが、Dialogflow ではユーザーが通常の会話でリクエストを表現できます。

仕組み

Dialogflow 対応 Google Chat アプリを作成すると、次の対象がアプリを使用できるように設定可能です。

  • 一般大衆。Google Workspace のライセンスを持つユーザーは、Google Workspace Marketplace からアプリをダウンロードできます。
  • Google Workspace ドメイン。Google Workspace 管理者は、ユーザーが Google Chat に追加できるアプリを指定できます。
  • アプリ テスター。アプリのテスト中は、アプリへのアクセスを制限できます。

Google Chat では、ユーザーがアプリと直接会話したり、スペース内からアプリを呼び出したりできます。この場合、次のようになります。

  1. ユーザーが Chat アプリにメッセージを送信します。
  2. Google Chat は、Chat アプリに JSON リクエストを送信します。これは、Cloud Functions でホストできます。
  3. Chat アプリが JSON リクエストを受信して解析します。この解析中に、Chat アプリは Dialogflow を呼び出します。
  4. Chat アプリが Dialogflow に、ユーザーの自然言語メッセージ テキストを含むリクエストを送信します。
  5. Dialogflow がユーザーのテキストを解釈し、Chat アプリにレスポンスを送信します。
  6. Chat アプリは Dialogflow のレスポンスを解析し、Google Chat に JSON レスポンスを送信します。
  7. Google Chat は Chat アプリの JSON レスポンスを受信し、テキスト メッセージ、カード メッセージ、UI のダイアログ メッセージの形式でレスポンスをレンダリングします。
  8. Google Chat はこのレスポンスをそのまま共有するか、カードベースの UI を使用してリッチ レスポンスを提示します。

このページでは、Dialogflow を Google Chat と統合してリッチチャット レスポンスを構成する方法について説明します。

制限事項

Google Chat の統合では、Dialogflow エージェントがデフォルトのエージェント言語のみを使用できます。

始める前に

Google Chat アプリを使用できるのは、Google Workspace のライセンスを持つユーザーのみです。Google Workspace 管理者は、次のことを行う必要があります。

Dialogflow エージェントをビルドする

まだ Dialogflow エージェントを作成していない状態でエージェントが Google Chat を操作する方法を確認する必要がある場合は、こちらのクイックスタートに沿って簡単なエージェントを作成します。ただし、エージェントを削除しないでください。次に、Google Chat のインターフェースを使用してエージェントを設定します。

Google Chat を設定する

Google Chat で Dialogflow エージェントを設定するには、次のいずれかを使用します。

Dialogflow コンソールを使用して Google Chat を設定する

Dialogflow コンソールを使用して Google Chat を統合する手順は次のとおりです。

  1. Dialogflow ES コンソールに移動します。
  2. 左側のメニューで、Dialogflow プロジェクトを選択します。
  3. [Integrations] をクリックします。
  4. [Google Chat] をクリックします。Google Chat が選択メニューに表示されない場合は、トラブルシューティングをご覧ください。
  5. アプリにアクセスできるユーザーを選択します。
  6. (省略可)エージェントを実行する環境を選択します。
  7. [開始] をクリックします。

Google Chat アプリが公開され、選択したユーザーにご利用いただけるようになりました。

アプリを構成するには、[Google Chat] をもう一度クリックして、[bot の詳細を構成] をクリックします。これにより、Google Chat API の Google Cloud コンソール ページが表示されます。このページでは、アプリのアバターなどのアプリ パラメータを構成できます。

Google Cloud コンソールを使用して Google Chat を設定する

Google Cloud コンソールを使用して Google Chat を統合する手順は次のとおりです。

  1. Dialogflow プロジェクトを選択します。

    プロジェクト セレクタに移動

  2. [] をクリックします。

  3. [API とサービス] > [ライブラリ] をクリックします。

  4. [Google Chat API] を見つけてクリックします。

  5. [有効にする] をクリックします。

  6. [構成] タブをクリックします。

  7. アプリを構成します。

  8. [Visibility] ペインで、アプリにアクセスできるユーザーを選択します。

    • アプリ テスター。[このチャットを特定のユーザーに許可する] を選択し、ユーザーのメールアドレスを入力します。
    • 一般的なパブリック ドメインまたはエンタープライズ Google Workspace ドメイン。アプリを公開します
  9. [保存] をクリックします。これで Google Chat アプリが公開され、選択したユーザーが使用できるようになります。

テスト

Chat アプリをテストする前に、Google Chat を設定するの説明に従って、チャット アプリを起動していることを確認してください。

次のいずれかの方法でアプリをテストできます。

アプリと直接チャットする

  1. Google Chatを開きます。
  2. [チャット] ペインで [+] をクリックし、[アプリを探す] を選択します。
  3. アプリを検索して選択します。Google Chat にアプリが表示されていない場合は、トラブルシューティングをご覧ください。
  4. [チャット] をクリックします。
  5. チャット エントリ フィールドに自然言語フレーズを入力して、アプリをテストします。

スペースからアプリを呼び出す

  1. Google Chatを開きます。
  2. [スペース] ペインで、[+] をクリックし、[スペースを作成] を選択します。
  3. スペース名「Test」を入力します。
  4. [Create(作成)] をクリックします。
  5. チャット エントリの項目に「@」と入力し、名前をオートコンプリートするアプリを選択します。
  6. オートコンプリートされたアプリ名の後に、自然言語フレーズを入力してアプリをテストします。

トラブルシューティング

エラー 解決策
[Dialogflow ES コンソール] > [統合] ページに、Google Chat がオプションとして表示されません。 ページを更新してみてください。左側のメニューで [インテント] をクリックし、[統合] をクリックします。
アプリが Google Chat に利用可能として表示されていない。 Google Workspace 管理者が Google Workspace アカウントを追加し、ユーザーに Chat アプリのインストールを許可していることを確認します。次に、Google Chat を設定するの説明に従って、Chat アプリを起動していることを確認します。

リッチ レスポンス メッセージ

この統合により、一部のリッチ レスポンス メッセージGoogle Chat のメッセージ タイプに変換されます。

テキストのレスポンス

テキスト レスポンスは、テキスト メッセージとして Google Chat に送信されます。このフォーマットでは、テキストを特定の(マークダウン ライト)記号で囲むことにより、太字や斜体にできます。

テキスト メッセージのレスポンスは、Dialogflow コンソールのデフォルトのテキスト レスポンスと同用の外観で表示されます。ただし、未加工の API レスポンスは少し異なります。 また、プラットフォーム構成を GOOGLE_HANGOUTS に設定して、複数の統合用のエージェントをビルドする際に活用できる情報を提供します。

"fulfillmentMessages": [
{
   "text": {
   "text": [
        "This is a test."
   ]
},
  "platform": "GOOGLE_HANGOUTS"
},

カード

カード形式のレスポンスは、カード メッセージとして Google Chat に送信されます。

画像

画像レスポンスは、Google Chat 画像ウィジェットとして Google Chat に送信されます。

カスタム ペイロード

他の種類の Google Chat メッセージを送信するには、カスタム ペイロードを使用します。

Google Chat のカスタム ペイロードを使用すると、より高度なカードを作成できます。1 つのカードは 1 つ以上のセクションを持つことができます。各セクションにはヘッダーを含めることができます。Google Chat メッセージ形式カードのリファレンス ガイドを参照して、これで作成できる組み合わせのいくつかを確認できます。ただし、カスタム ペイロードを使用する場合は、JSON 形式を指定する必要があります。

カード v1 形式を使用したカスタム ペイロードの例を次に示します。

{
  "hangouts": {
    "header": {
      "title": "Pizza Delivery Customer Support",
      "subtitle": "pizzadelivery@example.com",
      "imageUrl": "https://goo.gl/aeDtrS"
    },
    "sections": [{
      "widgets": [{
        "keyValue": {
          "icon": "TRAIN",
          "topLabel": "Order No.",
          "content": "12345"
        }
      },
      {
        "keyValue": {
          "topLabel": "Status",
          "content": "In Delivery"
        }
      }]
    },
    {
      "header": "Location",
      "widgets": [{
        "image": {
          "imageUrl": "https://dummyimage.com/600x400/000/fff"
        }
      }]
    },
    {
      "header": "Buttons - I could leave the header out",
      "widgets": [{
        "buttons": [{
          "textButton": {
            "text": "OPEN ORDER",
            "onClick": {
              "openLink": {
                "url": "https://example.com/orders/..."
              }
            }
          }
        }]
      }]
    }]
  }
}

Chat アプリを停止する

Google Chat アプリを利用不可にするには、次のいずれかを使用します。

Dialogflow コンソールを使用して Chat アプリを停止する

  1. Dialogflow ES コンソールに移動します。
  2. 左側のメニューで、Dialogflow プロジェクトを選択します。
  3. [Integrations] をクリックします。
  4. [Google Chat] をクリックします。Google Chat が選択メニューに表示されない場合は、トラブルシューティングをご覧ください。
  5. [Stop] をクリックします。

Google Cloud コンソールを使用して Chat アプリを停止する

  1. Google Cloud コンソールで Dialogflow プロジェクトを選択します。

    プロジェクト セレクタに移動

  2. [] をクリックします。

  3. [API とサービス] > [ライブラリ] をクリックします。

  4. [Google Chat API] を見つけてクリックします。

  5. [管理] をクリックします。

  6. [構成] タブをクリックします。

  7. [アプリのステータス] フィールドで、[無効] を選択します。

詳細情報

Google Chat の使用について詳しくは、以下をご覧ください。