通过将 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 中,用户可以与您的应用直接对话,也可以从聊天室中调用该应用。会发生以下情况:
- 用户向 Chat 应用发送消息。
- Google Chat 会向 Chat 应用发送 JSON 请求,该应用可以托管在 Cloud Functions 中。
- 聊天应用接收 JSON 请求并对其进行解析。在解析期间,Chat 应用会调用 Dialogflow。
- Chat 应用向 Dialogflow 发送请求,其中包含用户的自然语言消息文本。
- Dialogflow 会解读用户的文本并向 Chat 应用发送响应。
- Chat 应用会解析 Dialogflow 的响应,并向 Google Chat 发送 JSON 响应。
- Google Chat 接收聊天应用的 JSON 响应,并在界面中以文本消息、卡片消息或对话框消息的形式呈现响应。
- 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,请按以下步骤操作:
- 前往 Dialogflow ES 控制台。
- 在左侧菜单中,选择一个 Dialogflow 项目。
- 点击集成 (Integrations)。
- 点击 Google Chat。 如果 Google Chat 不在选项中,请参阅问题排查。
- 选择哪些人可以访问该应用。
- [可选] 选择运行代理的环境。
- 点击启动。
您的 Google Chat 应用现已发布,并且可供您选择的用户使用。
如需配置该应用,请再次点击 Google Chat,然后点击配置聊天机器人详细信息。 这会显示 Google Chat API 的 Google Cloud 控制台页面,您可以在其中配置应用参数,例如应用头像。
使用 Google Cloud 控制台设置 Google Chat
如需使用 Google Cloud 控制台集成 Google Chat,请按以下步骤操作:
选择 Dialogflow 项目。
点击 menu。
依次点击 API 和服务以及库。
搜索并点击 Google Chat API。
点击启用。
点击配置标签页。
配置应用。
在公开范围窗格中,选择谁可以访问该应用:
- 应用测试人员。选择面向特定人员提供此聊天,然后输入相应人员的电子邮件地址。
- 面向公众或企业 Google Workspace 网域。 发布应用。
点击保存。您的 Google Chat 应用现已发布,可供您选择的用户使用。
测试
在测试 Chat 应用之前,请确保已按照设置 Google Chat 中的说明启动该应用。
您可以使用以下任一方法测试应用:
直接与应用 Chat
- 打开 Google Chat。
- 在聊天窗格中,点击 +,然后选择查找应用。
- 搜索并选择您的应用。 如果 Google Chat 未列出您的应用,请参阅问题排查。
- 点击 Chat。
- 在聊天输入字段中,输入自然语言短语以测试应用。
从聊天室中调用应用
- 打开 Google Chat。
- 在聊天室窗格中,点击 +,然后选择创建聊天室。
- 输入聊天室名称 Test。
- 点击创建。
- 在聊天输入字段中,输入 @,然后选择您的应用以自动补全名称。
- 在自动补全的应用名称后,输入自然语言短语来测试应用。
问题排查
| 错误 | 解决方案 |
|---|---|
| Dialogflow ES 控制台 >“集成”页面未将 Google Chat 显示为选项。 | 尝试刷新页面:在左侧菜单中,依次点击意图和集成。 |
| Google Chat 未将您的应用列为可用。 | 确保您的 Google Workspace 管理员已为您添加 Google Workspace 账号,并允许用户安装 Chat 应用。然后,确保您已按照设置 Google Chat 中的说明启动 Chat 应用。 |
富响应消息
此集成会将一些富响应消息消息转换为 Google Chat 消息格式。
文本响应
文本响应作为文本消息发送到 Google Chat。借助此格式,您可以将文本加粗或斜体,只需将文本换成特定的(Markdown 灯)符号即可。
从外观上看,文本消息响应与 Dialogflow 控制台中的 Default Text Response 相同。不过,原始 API 响应看起来会略有不同。 它还将平台配置设置为 GOOGLE_HANGOUTS,其在构建用于多个集成的代理时可能会很有趣。
"fulfillmentMessages": [
{
"text": {
"text": [
"This is a test."
]
},
"platform": "GOOGLE_HANGOUTS"
},
卡片
图片
图片响应作为 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 应用
- 前往 Dialogflow ES 控制台。
- 在左侧菜单中,选择一个 Dialogflow 项目。
- 点击集成 (Integrations)。
- 点击 Google Chat。 如果 Google Chat 不在选项中,请参阅问题排查。
- 点击停止。
使用 Google Cloud 控制台停止 Chat 应用
在 Google Cloud 控制台中选择 Dialogflow 项目。
点击 menu。
依次点击 API 和服务以及库。
搜索并点击 Google Chat API。
点击管理。
点击配置标签页。
在应用状态字段中,选择 DISABLED。
更多信息
如需详细了解如何使用 Google Chat,请参阅以下内容:
- Google Chat API 开发者文档
- 构建可扩展 Google Chat 的 Google Workspace 加载项
- 视频:将 Dialogflow 与 Google Chat 集成
- Codelab:将 Dialogflow 与 Google Chat 集成