Dialogflow CX Messenger 执行方式

创建自定义卡片执行方式时,您可以创建文本回复和自定义载荷。文本回答用于纯文本和 Markdown 代理回答,自定义载荷用于富回答。所有响应类型的自定义载荷格式都具有以下基本结构:

{
  "richContent": [
    [
      {
        "type": "type-id",
        ...
      },
      {
        "type": "type-id",
        ...
      }
    ],
    [
      {
        "type": "type-id",
        ...
      },
      {
        "type": "type-id",
        ...
      }
    ]
  ]
}

其余小节介绍了您可以为自定义载荷配置的各种类型的回答。

文本响应

Dialogflow CX Messenger 文本屏幕截图

文本回答支持纯文本和 Markdown。以下是几个 Markdown 示例:

  • *Italic*
  • **Bold**
  • # Title
  • [Link text](Link URL)
  • ![](Image URL)

  • 表:

    Header 1 | Header 2
    -------- | --------
    Cell 1   | Cell 2
    

信息响应类型

Dialogflow CX Messenger 信息类型屏幕截图

信息响应类型是一种信息丰富的片头字幕,用户可以点击或轻触。

下表介绍了各个字段:

名称 类型 说明
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"
        }
      }
    ]
  ]
}

说明响应类型

Dialogflow CX Messenger 描述类型屏幕截图

说明响应类型是一种信息卡,可让您显示多行文本。

下表介绍了各个字段:

名称 类型 说明
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."
        ]
      }
    ]
  ]
}

图片响应类型

Dialogflow CX Messenger 图片类型屏幕截图

图片回答类型是用户可以点击或轻触的图片卡片。该回答类型支持参考信息条状标签,可让您将图片来源添加为锚链接,并附带简短的说明性文字和图标。

下表介绍了各个字段:

名称 类型 说明
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 图片的边框半径。

视频回答类型

Dialogflow CX Messenger 视频类型屏幕截图

视频响应类型会呈现一个视频元素,该元素可以是来自网址的直接视频(直接在 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 视频的边框半径。

按钮响应类型

Dialogflow CX Messenger 按钮类型屏幕截图

按钮回答类型是一个带有图标的小按钮,您可以点击或轻触该按钮。

下表介绍了各个字段:

名称 类型 说明
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 禁止多行按钮。

列表响应类型

Dialogflow CX Messenger 列表类型屏幕截图

列表回答类型是一种卡片,可让您从多个选项中进行选择。响应包含 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 列表元素之间的边框。

折叠式响应类型

Dialogflow CX Messenger 折叠式类型屏幕截图

折叠式回答类型是一种小型卡片,您可以点按或点击它来展开并显示更多文本。

下表介绍了各个字段:

名称 类型 说明
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"
      }
    ]
  ]
}

建议内容信息卡响应类型

Dialogflow CX Messenger 选项卡类型屏幕截图

借助建议内容信息条响应类型,您可以提供可点击的建议内容信息条列表。

下表介绍了各个字段:

名称 类型 说明
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 允许显示多行条状标签。

引用回答类型

Dialogflow CX Messenger 引用类型屏幕截图

引用响应类型为最终用户提供可点击的引用链接列表。

下表介绍了各个字段:

名称 类型 说明
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 可选 无 引用的方框阴影。

文件响应类型

Dialogflow CX Messenger 文件类型屏幕截图

文件响应类型会呈现一个可供下载的文件元素列表。 用户可以通过点击锚点元素来下载文件。

下表介绍了各个字段:

名称 类型 说明
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 响应类型

Dialogflow CX Messenger 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-allowlist HTML 自定义)。
  • 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 可选 透明 表头行的背景。

自定义模板回答类型

Dialogflow CX Messenger 自定义模板类型屏幕截图

自定义模板响应类型会呈现您网站上定义的自定义元素。该元素不放置在卡片内,始终独立存在。

下表介绍了各个字段:

名称 类型 说明
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 自定义卡片屏幕截图

您可以将 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

例如,创建如下所示的示例:

Dialogflow CX Messenger 的富媒体内容示例

第 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);