Dialogflow Google Chat 集成

通过将 Dialogflow 与 Google Chat 集成,您可以利用这两项服务中的功能:

  • Google Chat。提供一个即时通讯平台,其中包含用于一对一对话和聊天室的前端界面。通过 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. 该聊天应用向 Dialogflow 发送请求,其中包含用户的自然语言消息文本。
  5. Dialogflow 解读用户的文本并向 Chat 应用发送响应。
  6. 聊天应用解析 Dialogflow 的响应,并将 JSON 响应发送到 Google Chat。
  7. Google Chat 会接收 Chat 应用的 JSON 响应,并在界面中以文本消息、卡片消息或对话框消息的形式呈现响应。
  8. Google Chat 会按原样共享此响应,或使用基于卡片的界面提供丰富响应。

本页介绍如何将 Dialogflow 与 Google Chat 集成以及如何配置富聊天响应。

限制

与 Google Chat 集成后,Dialogflow 代理只能使用默认代理语言

准备工作

只有获得许可的 Google Workspace 用户才能使用 Google Chat 应用。您的 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,然后点击配置聊天机器人详细信息。 系统会显示 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. 公开范围窗格中,选择谁可以访问应用:

    • 应用测试人员。选择允许特定人员加入此聊天,然后输入其电子邮件地址。
    • 使用 Google Workspace 的常规域名(公开或企业域名)。 发布应用
  9. 点击保存。您的 Google Chat 应用现已上线,可供您选择的人使用。

测试

在测试 Chat 应用之前,请确保您已按照设置 Google Chat 中的说明启动该应用。

您可以使用以下任一方法测试应用:

直接与应用 Chat

  1. 打开 Google Chat
  2. Chat 窗格中,点击 +,然后选择查找应用
  3. 搜索并选择您的应用。 如果 Google Chat 未列出您的应用,请参阅问题排查
  4. 点击 Chat
  5. 在聊天输入字段中,输入一个自然语言短语来测试应用。

从聊天室中调用应用

  1. 打开 Google Chat
  2. 聊天室窗格中,点击 +,然后选择创建聊天室
  3. 输入聊天室名称 Test
  4. 点击创建
  5. 在聊天输入字段中输入 @,然后选择您的应用以自动填充名称。
  6. 在自动填充的应用名称后面,输入自然语言短语来测试应用。

问题排查

错误 解决方案
Dialogflow ES 控制台 >“集成”页面未显示 Google Chat 这一选项。 尝试刷新页面:在左侧菜单中,点击意图 (Intents),然后点击集成 (Integrations)。
Google Chat 不会将您的应用列为可用应用。 请确保您的 Google Workspace 管理员为您添加了 Google Workspace 帐号,并允许用户安装 Chat 应用。然后,确保您已按照设置 Google Chat 中的说明启动 Chat 应用。

富响应消息

此集成会将一些富响应消息消息转换为 Google Chat 消息格式

文本响应

文字响应会以短信的形式发送到 Google Chat。通过这种格式,您可以通过将文本用特定 (markdown) 符号封装,将文本设为粗体或斜体。

文本消息响应在视觉上看起来与 Dialogflow 控制台中的“默认文本响应”相同。不过,原始 API 响应会略有不同。 此外,它还将平台配置设置为 GOOGLE_HANGOUTS,这在为多个集成构建代理时可能会很有用。

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

卡片

卡片回复会以卡片消息的形式发送到 Google Chat。

图片

图片响应作为 Google Chat 图片微件发送到 Google Chat。

自定义负载

如需发送其他类型的 Google Chat 消息,您可以使用自定义载荷

Google Chat 自定义载荷可让您创建更高级的卡片。一张卡可以包含一个或多个部分。每个部分可以有一个标题。您可以查看 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. 点击停止

使用 Google Cloud 控制台停止 Chat 应用

  1. 从 Google Cloud 控制台中选择 Dialogflow 项目。

    转到“项目选择器”

  2. 点击

  3. 点击 API 和服务,然后点击

  4. 搜索并点击 Google Chat API

  5. 点击管理

  6. 点击配置标签页。

  7. 应用状态字段中,选择已停用

更多信息

如要详细了解如何使用 Google Chat,请参阅以下内容: