Hangouts Chat

通过 Dialogflow Hangouts 集成,您可以创建在一对一聊天和聊天室中使用的聊天机器人。如需了解详情,请参阅 Hangouts Chat API 文档

设置

要设置和启用 Hangouts Chat 集成,请按以下步骤操作:

  1. 点击左侧菜单中的集成
  2. 点击 Hangouts Chat
  3. 选择一个访问权限选项。
  4. [可选] 选择代理环境。
  5. 点击开始

配置聊天机器人

创建 Hangouts Chat 聊天机器人后,您可以在集成弹出窗口上点击配置聊天机器人详细信息按钮来更改详细信息。 执行此操作后,您会进入 Hangouts Chat API 相应的 Google Cloud Platform Console 页面。

按照 Hangouts Chat API 发布聊天机器人指南中的说明配置和发布您的聊天机器人。

通过 Google Cloud Platform Console 启用并配置

您还可以使用以下步骤通过 Google Cloud Platform Console 启用 Hangouts 集成:

  1. 在 Google Cloud Platform Console 中,点击左上角的菜单图标
  2. 依次点击 API 和服务以及信息中心
  3. 点击启用 API 和服务
  4. 搜索“Hangouts Chat”。
  5. 点击 Hangouts Chat API 图块。
  6. 点击启用
  7. 点击左侧边栏菜单中的配置
  8. 按照 Hangouts Chat API 发布聊天机器人指南中的说明配置和发布您的聊天机器人。

测试

在测试聊天机器人之前,请确保已启动聊天机器人(请参阅设置部分)

如需测试聊天机器人,请按照下列步骤操作:

  1. 转到 Hangouts Chat
  2. 点击搜索字段。
  3. 选择查找聊天机器人
  4. 选择聊天机器人名称。
  5. 点击发送消息

问题排查

错误 解决方案
管理员已禁止您通过直接消息与聊天机器人对话。 请要求您的 G Suite 管理员允许用户安装聊天机器人

富响应消息

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

文本响应

文本响应将作为 SimpleText 发送到 Hangouts。借助此格式,您可以将文本加粗或斜体,只需将文本换成特定的(Markdown 灯)符号即可。

从外观上看,SimpleText 响应与 Dialogflow 控制台中的 Default Text Response 相同。不过,原始 API 响应看起来会略有不同。它还将平台配置设置为 GOOGLE_HANGOUTS,其在构建用于多个集成的代理时可能会很有趣。

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

图片

图片响应将作为 Hangouts 图片小部件发送到 Hangouts。

卡片

卡片响应将作为 Hangouts 卡片发送到 Hangouts。

自定义负载

要发送其他类型的 Hangouts 消息,你可以使用自定义负载

借助 Hangouts Custom Payload,您可以创建更高级的卡片。一张卡可以包含一个或多个部分。每个部分可以有一个标题。您可以查看 Hangouts 消息格式卡片参考指南,了解您可以利用此卡片创建的一些组合。但是,使用自定义负载意味着必须提供 JSON 格式。

以下是一个有效示例:

{
  "hangouts": {
    "header": {
      "title": "Pizza Bot Customer Support",
      "subtitle": "pizzabot@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/..."
              }
            }
          }
        }]
      }]
    }]
  }
}