创建自定义卡片执行方式时,您可以创建文本回复和自定义载荷。文本回答用于纯文本和 Markdown 代理回答,自定义载荷用于富回答。所有响应类型的自定义载荷格式都具有以下基本结构:
{
"richContent": [
[
{
"type": "type-id",
...
},
{
"type": "type-id",
...
}
],
[
{
"type": "type-id",
...
},
{
"type": "type-id",
...
}
]
]
}
其余小节介绍了您可以为自定义载荷配置的各种类型的回答。
文本响应

文本回答支持纯文本和 Markdown。以下是几个 Markdown 示例:
*Italic***Bold**# Title[Link text](Link URL)表:
Header 1 | Header 2 -------- | -------- Cell 1 | Cell 2
信息响应类型

信息响应类型是一种信息丰富的片头字幕,用户可以点击或轻触。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“info”。 |
title |
string |
卡片标题。 |
subtitle |
string |
卡片副标题。 |
image |
object |
图片。 |
image.rawUrl |
string |
图片的公开网址。 |
anchor |
object |
点击元素时要遵循的锚点。 |
anchor.href |
string |
锚点的网址。 |
anchor.target |
string |
锚点的目标,默认为 _blank。 |
例如:
{
"richContent": [
[
{
"type": "info",
"title": "Info item title",
"subtitle": "Info item subtitle",
"image": {
"rawUrl": "https://example.com/images/logo.png"
},
"anchor": {
"href": "https://example.com"
}
}
]
]
}
说明响应类型

说明响应类型是一种信息卡,可让您显示多行文本。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“description”。 |
title |
string |
卡片标题。 |
text |
array<string> |
字符串数组,其中每个字符串都会在新行中呈现。 |
例如:
{
"richContent": [
[
{
"type": "description",
"title": "Description title",
"text": [
"This is text line 1.",
"This is text line 2."
]
}
]
]
}
图片响应类型

图片回答类型是用户可以点击或轻触的图片卡片。该回答类型支持参考信息条状标签,可让您将图片来源添加为锚链接,并附带简短的说明性文字和图标。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
回答类型:“图片”。 |
rawUrl |
string |
图片的公开网址。 |
accessibilityText |
string |
图片的替代文本。 |
reference.text |
string |
要在参考条状标签中显示的文本。 |
reference.anchor.href |
string |
参考资料条状标签的网址。 |
reference.anchor.target |
string |
参考条状标签中锚点的目标,默认为 _blank。 |
reference.image.rawUrl |
string |
要在参考信息条状标签中显示的图片。 |
例如:
{
"richContent": [
[
{
"type": "image",
"rawUrl": "https://example.com/images/logo.png",
"accessibilityText": "Example logo",
"reference": {
"text": "Logo",
"anchor": {
"href": "https://example.com/images/logo.png"
},
"image": {
"rawUrl": "https://example.com/images/logo_small.png"
}
}
}
]
]
}
您可以使用以下 CSS 变量:
| 属性 | 输入政策 | 默认值 | 说明 |
|---|---|---|---|
df-messenger-image-border-radius |
可选 | 8px | 图片的边框半径。 |
视频回答类型

视频响应类型会呈现一个视频元素,该元素可以是来自网址的直接视频(直接在 Messenger 中播放),也可以是指向视频的链接。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“视频”。 |
title |
string |
视频标题(选填)。 |
source |
object |
视频的来源。 |
source.type |
string |
视频来源类型,link 或 raw。 |
source.anchor |
object |
点击元素时要遵循的锚点。 |
source.embeddedPlayer |
string |
link 类型的视频可以嵌入,而不是链接到播放器的网页。此功能仅针对一组已知播放器实现,支持 youtube。 |
source.thumbnail |
object |
anchor 的缩略图。 |
source.thumbnail.rawUrl |
string |
缩略图的网址。 |
source.rawUrl |
string |
raw 类型视频的网址。 |
例如:
{
"richContent": [
[
{
"type": "video",
"source": {
"type": "link",
"anchor": {
"href": "https://www.youtube.com/watch?v=example"
}
}
}
]
]
}
您可以使用以下 CSS 变量:
| 属性 | 输入政策 | 默认值 | 说明 |
|---|---|---|---|
df-messenger-video-width |
可选 | 自动 | 视频宽度(受 max-width\: 100% 限制)。 |
df-messenger-video-height |
可选 | 自动 | 视频的高度。 |
df-messenger-video-embed-width |
可选 | 560px | 嵌入式视频的宽度(受 max-width\: 100% 限制)。 |
df-messenger-video-embed-height |
可选 | 315px | 嵌入式视频的高度。 |
df-messenger-video-border |
可选 | 1px solid #e0e0e0 | 视频的边框。 |
df-messenger-video-border-radius |
可选 | 8px | 视频的边框半径。 |
按钮响应类型

按钮回答类型是一个带有图标的小按钮,您可以点击或轻触该按钮。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“button”。 |
icon |
object |
按钮的图标。 |
icon.type |
string |
Material 图标库中的图标。默认图标为箭头。 |
icon.color |
string |
颜色十六进制代码。 |
image |
object |
按钮的图片,优先级高于 icon。 |
image.rawUrl |
string |
按钮图片的公开网址。 |
mode |
string |
可选。如果设置为“blocking”,则在用户点击按钮之前,用户输入会被停用。 |
text |
string |
按钮文字。 |
anchor |
object |
点击元素时要遵循的锚点。 |
anchor.href |
string |
锚点的网址。 |
anchor.target |
string |
锚点的目标,默认为 _blank。 |
event |
object |
点击按钮时触发的 Dialogflow CX 事件。 |
例如:
{
"richContent": [
[
{
"type": "button",
"icon": {
"type": "chevron_right",
"color": "#FF9800"
},
"mode": "blocking",
"text": "Button text",
"anchor": {
"href": "https://example.com"
},
"event": {
"event": ""
}
}
]
]
}
您可以使用以下 CSS 变量:
| 属性 | 输入政策 | 默认值 | 说明 |
|---|---|---|---|
df-messenger-button-border |
可选 | 无 | 按钮的边框。 |
df-messenger-button-border-radius |
可选 | 8px | 按钮的边框半径。 |
df-messenger-button-font-color |
可选 | #1f1f1f | 按钮的文字颜色。 |
df-messenger-button-font-family |
可选 | "Google Sans", "Helvetica Neue", sans-serif | 按钮的字体系列。 |
df-messenger-button-font-size |
可选 | 14px | 按钮的字体大小。 |
df-messenger-button-padding |
可选 | 12px | 按钮的内边距。 |
df-messenger-button-icon-spacing |
可选 | 12px | 按钮图标和文字之间的间距。 |
df-messenger-button-icon-font-size |
可选 | 24px | 按钮图标的大小。 |
df-messenger-button-image-size |
可选 | 24px | 按钮图片的尺寸。 |
df-messenger-button-image-offset |
可选 | 0 | 按钮图片的偏移量,允许使用负值来抵消内边距。 |
df-messenger-button-text-align |
可选 | center | 按钮的文本对齐方式。 |
df-messenger-button-text-wrap |
可选 | 正常 | 使用 nowrap 禁止多行按钮。 |
列表响应类型

列表回答类型是一种卡片,可让您从多个选项中进行选择。响应包含 list 和 divider 响应类型的数组。
下表介绍了 list 类型:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“list”。 |
title |
string |
选项标题。 |
subtitle |
string |
选项副标题。 |
event |
object |
点击该选项时触发的 Dialogflow CX 事件。 |
anchor |
object |
点击元素时要遵循的锚点。 |
anchor.href |
string |
锚点的网址。 |
anchor.target |
string |
锚点的目标,默认为 _blank。 |
image |
object |
图片。 |
image.rawUrl |
string |
参考图片的公开网址。 |
event.event |
string |
点击该选项时触发的事件的名称。 |
下表介绍了 divider 类型:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“divider”。 |
例如:
{
"richContent": [
[
{
"type": "list",
"title": "List item 1 title",
"subtitle": "List item 1 subtitle",
"event": {
"event": ""
}
},
{
"type": "list",
"title": "List item 2 title",
"subtitle": "List item 2 subtitle",
"event": {
"event": ""
}
}
]
]
}
您可以使用以下 CSS 变量:
| 属性 | 输入政策 | 默认值 | 说明 |
|---|---|---|---|
df-messenger-list-padding |
可选 | 16px | 列表元素的内边距。 |
df-messenger-list-inset |
可选 | 0 | 列表元素的额外水平“边衬区”(除了内边距之外),用于控制元素之间边框的扩展。 |
df-messenger-list-spacing |
可选 | 10px | 列表元素之间的垂直间距。 |
df-messenger-list-border-bottom |
可选 | 1px solid #e0e0e0 | 列表元素之间的边框。 |
折叠式响应类型

折叠式回答类型是一种小型卡片,您可以点按或点击它来展开并显示更多文本。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
回答类型:“accordion”。 |
title |
string |
折叠式标题。 |
subtitle |
string |
折叠式副标题。 |
image |
object |
图片。 |
image.rawUrl |
string |
图片的公开网址。 |
text |
string |
折叠式文本。 |
例如:
{
"richContent": [
[
{
"type": "accordion",
"title": "Accordion title",
"subtitle": "Accordion subtitle",
"image": {
"rawUrl": "https://example.com/images/logo.png"
},
"text": "Accordion text"
}
]
]
}
建议内容信息卡响应类型

借助建议内容信息条响应类型,您可以提供可点击的建议内容信息条列表。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“chips”。 |
options |
array<object> |
选项对象数组。 |
options[].mode |
string |
可选。如果设为“blocking”,则在用户点击条状标签之前,用户输入功能处于停用状态。 |
options[].text |
string |
选项文本。 |
options[].image |
object |
可选。图片。 |
options[].image.rawUrl |
string |
图片的公开网址(可选)。 |
options[].anchor |
object |
可选。点击元素时要遵循的锚标记。 |
options[].anchor.href |
string |
锚点的网址。 |
options[].anchor.target |
string |
锚点的目标,默认为 _blank。 |
例如:
{
"richContent": [
[
{
"type": "chips",
"options": [
{
"mode": "blocking",
"text": "Chip 1",
"image": {
"rawUrl": "https://example.com/images/logo.png"
},
"anchor": {
"href": "https://example.com"
}
},
{
"text": "Chip 2",
"image": {
"rawUrl": "https://example.com/images/logo.png"
},
"anchor": {
"href": "https://example.com"
}
}
]
}
]
]
}
您可以提供以下 CSS 变量:
| 属性 | 输入政策 | 默认值 | 说明 |
|---|---|---|---|
df-messenger-chips-spacing |
可选 | 10px | 条状标签与上一条消息之间的间距。 |
df-messenger-chips-border-color |
可选 | #e0e0e0 | 条状标签的边框颜色。 |
df-messenger-chips-border-color-hover |
可选 | #e0e0e0 | 悬停时条状标签的边框颜色。 |
df-messenger-chips-border-radius |
可选 | 999px | 条状标签的边框半径。 |
df-messenger-chips-background |
可选 | 白色 | 条状标签的背景。 |
df-messenger-chips-background-hover |
可选 | rgba(68, 71, 70, 0.08) |
悬停光标时条状标签的背景。 |
df-messenger-chips-padding |
可选 | 6px 16px | 条状标签的内边距。 |
df-messenger-chips-font-color |
可选 | 黑色 | 条状标签的文字颜色。 |
df-messenger-chips-font-family |
可选 | "Google Sans", "Helvetica Neue", sans-serif | 条状标签的字体系列。 |
df-messenger-chips-font-size |
可选 | 14px | 条状标签的文字大小。 |
df-messenger-chips-font-weight |
可选 | 正常 | 条状标签的字体粗细。 |
df-messenger-chips-font-weight-hover |
可选 | 正常 | 悬停时条状标签的字体粗细。 |
df-messenger-chips-box-shadow |
可选 | 0 2px 2px 0 rgba(0, 0, 0, 0.24) |
条状标签的方框阴影。 |
df-messenger-chips-content-align |
可选 | flex-start | 条状标签中内容(例如图片)的垂直对齐方式。 |
df-messenger-chips-text-wrap |
可选 | 不换行 | 使用 normal 允许显示多行条状标签。 |
引用回答类型

引用响应类型为最终用户提供可点击的引用链接列表。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“match_citations”。 |
citations |
array<object> |
Citation 对象数组。 |
citations[].title |
string |
引用标题。 |
citations[].subtitle |
string |
引用副标题(已忽略)。 |
citations[].anchor |
object |
点击元素时要遵循的锚点。 |
citations[].anchor.href |
string |
锚点的网址。 |
citations[].anchor.target |
string |
锚点的目标,默认为 _blank。 |
例如:
{
"richContent": [
[
{
"type": "match_citations",
"citations": [
{
"title": "Source 1",
"subtitle": "",
"anchor": {
"href": "https://example.com/1"
}
},
{
"title": "Source 2",
"subtitle": "",
"anchor": {
"href": "https://example.com/2"
}
}
]
}
]
]
}
您可以使用以下 CSS 变量:
| 属性 | 输入政策 | 默认值 | 说明 |
|---|---|---|---|
df-messenger-citations-spacing |
可选 | 10px | 上一条消息的引用上方留出空间。 |
df-messenger-citations-message-display |
可选 | 屏蔽 | 定义引用上方备注的显示方式,允许的值为 block 或 none。 |
df-messenger-citations-message-font-color |
可选 | #041e49 | 引用上方备注的文字颜色。 |
df-messenger-citations-message-font-size |
可选 | 12px | 引用上方的备注的文字大小。 |
df-messenger-citations-flex-direction |
可选 | 行 | 引用的弹性方向属性,建议使用 row(水平换行)或 column(垂直)。 |
df-messenger-citations-border-color |
可选 | #3279f9 | 引用的边框颜色。 |
df-messeenger-citations-border-color-hover |
可选 | #3279f9 | 悬停时引用的边框颜色。 |
df-messenger-citations-border-radius |
可选 | 4px | 引用的边框半径。 |
df-messenger-citations-padding |
可选 | 8px | 引用内容的内边距。 |
df-messenger-citations-background |
可选 | 白色 | 引用的背景。 |
df-messenger-citations-background-hover |
可选 | rgba(68, 71, 70, 0.08) |
悬停时引用的背景。 |
df-messenger-citations-font-color |
可选 | #3279f9 | 引用的文字颜色。 |
df-messenger-citations-font-family |
可选 | "Google Sans", "Helvetica Neue", sans-serif | 引用的字体系列。 |
df-messenger-citations-font-size |
可选 | 11px | 引用的文字大小。 |
df-messenger-citations-icon-font-size |
可选 | 14px | 引用图标的文字大小。 |
df-messenger-citations-font-weight |
可选 | 正常 | 引用的字体粗细。 |
df-messenger-citations-font-weight-hover |
可选 | 正常 | 悬停时引用的字体粗细。 |
df-messenger-citations-icon-spacing |
可选 | 4px | 引用中图标和文字之间的间距。 |
df-messenger-citations-box-shadow |
可选 | 无 | 引用的方框阴影。 |
文件响应类型

文件响应类型会呈现一个可供下载的文件元素列表。 用户可以通过点击锚点元素来下载文件。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“files”。 |
files |
array<object> |
文件对象数组。 |
files[].name |
string |
文件名。 |
files[].image |
object |
文件图片。 |
files[].image.rawUrl |
string |
图片的公开文件网址。 |
files[].anchor |
object |
锚点,用于下载文件。 |
files[].anchor.href |
string |
锚点的网址。 |
files[].anchor.target |
string |
锚点的目标,默认为 _blank。 |
例如:
{
"richContent": [
[
{
"type": "files",
"files": [
{
"name": "instructions.pdf",
"image": {
"rawUrl":
"https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/cloud_download/default/24px.svg"
},
"anchor": {
"href": "https://example.com/instructions.pdf"
}
},
{
"name": "data.csv",
"image": {
"rawUrl":
"https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/csv/default/24px.svg"
},
"anchor": {
"href": "https://example.com/data.csv"
}
}
]
}
]
]
}
可提供以下 CSS 变量:
| 属性 | 输入政策 | 默认值 | 说明 |
|---|---|---|---|
df-messenger-files-spacing |
可选 | 10px | 文件与上一条消息之间的间距。 |
df-messenger-files-distance |
可选 | 8px | 列表中文件之间的距离。 |
df-messenger-files-flex-direction |
可选 | 行 | 文件的 Flex direction 属性,建议使用 row(水平,带换行符)或 column(垂直)。 |
df-messenger-files-background |
可选 | 白色 | 文件的背景。 |
df-messenger-files-border |
可选 | 1px solid #e0e0e0 | 文件边框。 |
df-messenger-files-border-radius |
可选 | 999px | 文件的边框半径。 |
df-messenger-files-box-shadow |
可选 | 0 2px 2px 0 rgba(0, 0, 0, 0.24) |
文件的方框阴影。 |
df-messenger-files-padding |
可选 | 6px 16px | 文件的内边距。 |
df-messenger-files-font-color |
可选 | #1f1f1f | 文件的文字颜色。 |
df-messenger-files-font-family |
可选 | "Google Sans", "Helvetica Neue", sans-serif | 文件的字体系列。 |
df-messenger-files-font-size |
可选 | 14px | 文件的大小。 |
df-messenger-files-font-weight |
可选 | 正常 | 文件的字体粗细。 |
df-messenger-files-background-hover |
可选 | 白色 | 悬停时文件的背景。 |
df-messenger-files-border-hover |
可选 | 1px solid #e0e0e0 | 悬停时文件的边框。 |
df-messenger-files-font-weight-hover |
可选 | 正常 | 悬停时文件的字体粗细。 |
df-messenger-files-image-offset |
可选 | 0 0 0 -8px | 左侧图片的偏移量。 |
df-messenger-files-image-size |
可选 | 18px | 左侧图片的尺寸。 |
df-messenger-files-text-spacing |
可选 | 8px | 左侧的图片-文字与右侧的文字-图标之间的距离。 |
df-messenger-files-icon-offset |
可选 | 0 -8px 0 0 | 右侧下载图标的偏移量。 |
df-messenger-files-icon-size |
可选 | 18px | 右侧下载图标的大小。 |
df-messenger-files-icon-font-color |
可选 | #444746 | 右侧下载图标的颜色。 |
HTML 响应类型

HTML 回答类型会向用户提供 HTML 消息。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“html”。 |
html |
string |
消息的文本内容,支持 HTML。 |
支持的 HTML 标记:
a- 锚点元素(用于创建超链接)。b- 粗体元素(用于将文本设为粗体)。i- 斜体元素(用于将文本设为斜体)。u- 下划线元素(用于为文本添加下划线)。h1- 标题 1 元素(用于网页的主标题)。h2- 标题 2 元素(用于子标题)。h3- 标题 3 元素(用于子子标题)。p- 段落元素(用于创建文本段落)。br- 换行符元素(用于在段落中创建换行符)。table- 表格元素(用于创建表格)。tr- 表格行元素(用于在表格中创建行)。thead- 表头元素(用于在表格中创建表头)。th- 表头数据或单元格元素(用于在表头行中创建单元格)。tbody- 表格主体元素(用于在表格中创建主体)。td- 表格数据或单元格元素(用于在表格行中创建单元格)。ul- 无序列表元素(用于创建项目符号列表)。ol- 有序列表元素(用于创建编号列表)。li- 列表项元素(用于在列表中创建项)。img- 图片元素(用于显示图片,另请参阅url-allowlistHTML 自定义)。div- 容器元素。span- 内嵌容器元素。
例如:
{
"richContent": [
[
{
"type": "html",
"html": "<b>Bold text</b> <i>Italic text</i> <u>Underlined text</u>"
}
]
]
}
设置 HTML 和 Markdown 的样式
对于锚点元素(包括 HTML a 元素和 Markdown 链接),您可以提供以下 CSS 变量:
| 属性 | 输入政策 | 默认值 | 说明 |
|---|---|---|---|
df-messenger-link-decoration |
可选 | 下划线 | link 元素的修饰。 |
df-messenger-link-font-color |
可选 | #0b57d0 | 未访问过的链接元素的字体颜色。 |
df-messenger-link-visited-font-color |
可选 | #0b57d0 | 已访问链接元素的字体颜色。 |
df-messenger-link-hover-font-color |
可选 | #0b57d0 | 悬停在 link 元素上时的字体颜色。 |
df-messenger-link-background |
可选 | 透明 | 链接元素的背景。 |
df-messenger-link-padding |
可选 | 0 | link 元素的内边距。 |
df-messenger-link-border |
可选 | 无 | 链接元素的边框。 |
df-messenger-link-border-radius |
可选 | 0 | 链接元素的边框半径。 |
您可以对表格元素(HTML table 元素和 Markdown 表格)使用以下 CSS 变量:
| 属性 | 输入政策 | 默认值 | 说明 |
|---|---|---|---|
df-messenger-table-font-size |
可选 | 14px | 表格元素中的文字大小。 |
df-messenger-table-font-color |
可选 | #1f1f1f | 表格元素中的文本颜色。 |
df-messenger-table-align |
可选 | 剩余 | 表格单元格中文本的对齐方式。 |
df-messenger-table-padding |
可选 | 0 | 表格单元格中的内边距。 |
df-messenger-table-border-collapse |
可选 | 单独的 | 表格的边框合并模式,使用 separate 启用 border-radius。 |
df-messenger-table-border-radius |
可选 | 0 | 表格的边框半径。 |
df-messenger-table-header-border-radius |
可选 | 0 | 表头的边框半径。 |
df-messenger-table-border-top |
可选 | 无 | 表格行的上边框。 |
df-messenger-table-border-top-first |
可选 | 无 | 表格第一行的上边框。 |
df-messenger-table-border-bottom |
可选 | 无 | 表格行的下边框。 |
df-messenger-table-border-bottom-last |
可选 | 无 | 最后一个表格行的下边框。 |
df-messenger-table-border-left |
可选 | 无 | 表格单元格的左边框。 |
df-messenger-table-border-left-first |
可选 | 无 | 行中第一个表格单元格的左边框。 |
df-messenger-table-border-right |
可选 | 无 | 表格单元格的右边框。 |
df-messenger-table-border-right-last |
可选 | 无 | 行中最后一个表格单元格的右边框。 |
df-messenger-table-background |
可选 | 透明 | 表格行的背景。 |
df-messenger-table-even-background |
可选 | 透明 | 偶数表格行的背景。 |
df-messenger-table-odd-background |
可选 | 透明 | 奇数表格行的背景。 |
df-messenger-table-header-font-size |
可选 | 14px | 表头元素中的文字大小。 |
df-messenger-table-header-font-weight |
可选 | 粗体 | 表格标题元素中的字体粗细。 |
df-messenger-table-header-font-color |
可选 | #1f1f1f | 表头元素中的文字颜色。 |
df-messenger-table-header-align |
可选 | 剩余 | 表头单元格中文本的对齐方式。 |
df-messenger-table-header-padding |
可选 | 0 | 表头单元格中的内边距。 |
df-messenger-table-header-border-top |
可选 | 无 | 表头行的上边框。 |
df-messenger-table-header-border-bottom |
可选 | 无 | 表标题行的下边框。 |
df-messenger-table-header-border-left |
可选 | 无 | 表头行中单元格的左边框。 |
df-messenger-table-header-border-left-first |
可选 | 无 | 表头行中第一个单元格的左边框。 |
df-messenger-table-header-border-right |
可选 | 无 | 表头行中单元格的右边框。 |
df-messenger-table-header-border-right-last |
可选 | 无 | 表头行中最后一个单元格的右边框。 |
df-messenger-table-header-background |
可选 | 透明 | 表头行的背景。 |
自定义模板回答类型

自定义模板响应类型会呈现您网站上定义的自定义元素。该元素不放置在卡片内,始终独立存在。
下表介绍了各个字段:
| 名称 | 类型 | 说明 |
|---|---|---|
type |
string |
响应类型:“custom_template”。 |
name |
string |
自定义元素的名称。 |
payload |
Object |
要传递给自定义元素的载荷。 |
例如:
{
"richContent": [
[
{
"type": "custom_template",
"name": "custom-element-example",
"payload": {
"text": "Hello World"
}
}
]
]
}
在您的网站上,自定义元素需要使用响应的 name 字段中的确切名称进行注册。payload 字段在构建后(但在 connectedCallback 之前)作为 dfPayload 传递给自定义元素。该字段可能包含任意 JSON。此外,dfResponseId 会传递给该元素。
使用示例中的响应,下面是自定义元素的实现示例:
class CustomElementExample extends HTMLElement {
constructor() {
super();
// The `dfPayload` field will be provided before `connectedCallback` is
// being called.
this.dfPayload = null;
// The `dfResponseId` field will be provided before `connectedCallback` is
// being called.
this.dfResponseId = null;
// It is not strictly required but recommended to contain the custom
// element in a shadow root.
// https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot
this.renderRoot = this.attachShadow({mode: 'open'});
}
/** Web component Lifecycle method. */
connectedCallback() {
const div = document.createElement('div');
// The `.text` must match the payload's structure in `richContent.payload`.
div.innerText = this.dfPayload.text;
this.renderRoot.appendChild(div);
}
}
(function() {
// Registers the element. This name must match the name in
// `richContent.payload`.
customElements.define('custom-element-example', CustomElementExample);
})();
合并响应类型

您可以将 Dialogflow CX Messenger 的各个富消息元素组合在一起,构建满足您需求的自定义卡片。
以下示例使用了 fulfillment 部分中列出的部分元素:
{
"richContent": [
[
{
"type": "image",
"rawUrl": "https://example.com/images/logo.png",
"accessibilityText": "Dialogflow CX across platforms"
},
{
"type": "info",
"title": "Dialogflow CX",
"subtitle": "Build natural and rich conversational experiences",
"anchor": {
"href": "https://cloud.google.com/dialogflow/docs"
}
},
{
"type": "chips",
"options": [
{
"text": "Case Studies",
"anchor": {
"href": "https://cloud.google.com/dialogflow/case-studies"
}
},
{
"text": "Docs",
"anchor": {
"href": "https://cloud.google.com/dialogflow/docs"
}
}
]
}
]
]
}
您可以使用以下 CSS 变量:
| 属性 | 输入政策 | 默认值 | 说明 |
|---|---|---|---|
df-messenger-card-background |
可选 | 白色 | 自定义卡片的背景。 |
df-messenger-card-padding |
可选 | 16px | 自定义卡片中元素的内边距。 |
df-messenger-card-border |
可选 | 1px solid #e0e0e0 | 自定义卡片的边框。 |
df-messenger-card-border-radius |
可选 | 8px | 自定义卡片的边框半径。 |
df-messenger-card-border-top-left-radius |
可选 | 8px | 自定义卡片左上角的边框半径。 |
df-messenger-card-border-top-right-radius |
可选 | 8px | 自定义卡片右上角的边框半径。 |
df-messenger-card-border-bottom-left-radius |
可选 | 8px | 自定义卡片左下角的边框半径。 |
df-messenger-card-border-bottom-right-radius |
可选 | 8px | 自定义卡片右下角的边框半径。 |
df-messenger-card-stack-border-top-left-radius |
可选 | 8px | 连续自定义卡片的左上角边框半径会覆盖左上角半径。 |
df-messenger-card-stack-border-top-right-radius |
可选 | 8px | 连续自定义卡片的右上角边框半径会覆盖右上角半径。 |
df-messenger-card-stack-border-bottom-left-radius |
可选 | 8px | 连续自定义卡片的左下角边框半径会覆盖左下角半径。 |
df-messenger-card-stack-border-bottom-right-radius |
可选 | 8px | 连续自定义卡片的右下角边框半径会覆盖右下角半径。 |
df-messenger-card-box-shadow |
可选 | 0 2px 2px 0 rgba(0, 0, 0, 0.24) |
自定义卡片的方框阴影。 |
playbook 工具中的富媒体内容
使用 playbook 工具向 Dialogflow CX Messenger 发送富媒体内容。
第 1 步:在智能体中创建 addRichContent 工具
如需创建名为 addRichContent 的函数工具,请使用以下数据:
工具输入:
properties: {}
type: object
工具输出:
properties:
status:
type: string
reason:
type: string
type: object
第 2 步:告诉智能体如何使用此工具
在指令和示例中告诉智能体如何使用该工具。
例如,您可以在说明中添加如下内容:
- Greet the user
- Ask the user what their favorite color is.
At the same time run ${TOOL: addRichContent} to display buttons
for blue, red, yellow, and green.
- Thank the user
例如,创建如下所示的示例:

第 3 步:定义 JavaScript
在托管 df-messenger 的网页的代码中,创建 JavaScript 代码,用于定义一个函数,以指示 df-messenger 呈现富媒体内容。向 df-messenger 注册此函数,以便在虚拟客服需要时执行该函数。
确保已声明变量 dfMessenger 并指向您的 df-messenger 实例。
以下是一些可用于此目的的示例代码:
const dfMessenger = document.querySelector('df-messenger');
function addRichContent(customPayload) {
dfMessenger.renderCustomCard(customPayload.richContent);
// add error handling
return Promise.resolve({ status: "OK", reason: null });
}
// substitute your own tool id
const toolId = 'projects/PROJECT_ID/locations/LOCATION/agents/AGENT_ID/tools/TOOL_ID'
dfMessenger.registerClientSideFunction(toolId, addRichContent.name, addRichContent);