展现卡片

在有屏设备上,您的技能在回复用户时,可以通过使用卡片展现更生动、丰富的内容。常用的展现卡片类型有文本卡片、标准卡片、标准列表卡片、图片卡片。展现卡片随Response消息一起发送给DuerOS。

文本卡片

文本卡片仅包含文本信息。

文本卡片格式

"card": {
    "type":"txt",
    "token":"{{STRING}}",
    "content":"{{STRING}}",
    "url":"{{STRING}}",
    "anchorText": "{{STRING}}",
    "cueWords":[
        "{{STRING}}",
        "{{STRING}}",
        "{{STRING}}",
        ...
    ]
}

文本卡片参数说明

参数名 描述 类型 是否必须
type 卡片类型,取固定值txt。 string
token 卡片的token,每个卡片的token唯一。 string
content 卡片的内容信息。 string
url URL地址。在companion app屏幕上,点击卡片可以跳转到对应的页面,在其他设备的屏幕上,点击卡片不会跳转到对应的页面,会触发Screen.LinkClicked事件。如果没有设置URL地址,卡片不可点击。 string
anchorText 链接显示的文本。如果没有文本,显示“查看更多”。该项仅在URL存在时有效。 string
cueWords 引导用户进行下一轮对话的提示样例,用户可以点击提示样例进行快捷输入。 string

应用举例

在companion app上文本卡片的展现示例。

文本卡片的示例

在其他设备端屏幕上展现示例。 图片

标准卡片

标准卡片包含图片和对应的文本信息。

标准卡片格式

"card": {
    "type":"standard",
    "token":"{{STRING}}",
    "title": "{{STRING}}",
    "content": "{{STRIGN}}", 
    "image": "{{STRING}}",
    "url":  "{{STRING}}",
    "anchorText": "{{STRING}}",
    "cueWords":[
        "{{STRING}}",
        "{{STRING}}",
        "{{STRING}}",
        ...
    ]
}

标准卡片参数说明

参数名 描述 类型 是否必须
type 卡片类型,固定值standard。 string
token 卡片的token,每个卡片的token唯一。 string
title 卡片的标题。 string
content 卡片的内容。 string
image 展现的图片。建议图片的宽度与高度的比是16:9。 string
url URL地址。在companion app屏幕上,点击卡片可以跳转到对应的页面,在其他设备的屏幕上,点击卡片不会跳转到对应的页面,会触发Screen.LinkClicked事件。如果没有设置URL地址,卡片不可点击。 string
anchorText 链接显示的文本。如果没有文本,显示“查看更多”。该项仅在URL存在时有效。 string
cueWords 引导用户进行下一轮对话的提示样例,用户可以点击提示样例进行快捷输入。 string

应用举例

在companion app上标准卡片的展现示例。

标准卡片的示例

在其他设备端屏幕上展现示例。 图片

标准列表卡片

标准列表卡片是多个标准卡片的集合,包含多张图片和图片相应的文本信息。

标准列表卡片格式

"card": {
    "type":"list",
    "token":"{{STRING}}",
    "list":[
        {
            "title": "{{STRING}}",
            "content": "{{STRIGN}}", 
            "image": "{{STRING}}",
            "url":  "{{STRING}}"
        },
        {
            "title": "{{STRING}}",
            "content": "{{STRIGN}}", 
            "image": "{{STRING}}",
            "url":  "{{STRING}}"
        },
        {...}
    ],
    "url":"{{STRING}}",
    "anchorText": "{{STRING}}",
    "cueWords":[
        "{{STRING}}",
        "{{STRING}}",
        "{{STRING}}",
        ...
    ]
}

标准列表卡片参数说明

参数名 描述 类型 是否必须
type 卡片类型,固定值list。 string
token 卡片的token,每个卡片的token唯一。 string
list 卡片列表。 -
list.title 卡片的标题。 string
list.content 卡片的文本内容。 string
list.image 展现的图片。如果整个卡片列表都没有图片需要展示,则不展现图片。当其中有一个item要展现图片时,其他的item展现默认图片。建议图片的宽度与高度的比是16:9。 string
list.url list的URL地址。在companion app屏幕上,点击卡片可以跳转到对应的页面,在其他设备的屏幕上,点击卡片不会跳转到对应的页面,会触发Screen.LinkClicked事件。如果没有设置URL地址,卡片不可点击。 string
url URL地址。在companion app屏幕上,点击卡片可以跳转到对应的页面,在其他设备的屏幕上,点击卡片不会跳转到对应的页面,会触发Screen.LinkClicked事件。如果没有设置URL地址,卡片不可点击。 string
anchorText 链接显示的文本。如果没有文本,显示“查看更多”。该项仅在URL存在时有效。 string
cueWords 引导用户进行下一轮对话的提示样例,用户可以点击提示样例进行快捷输入。 string

应用举例

在companion app上标准卡片列表的示例。

标准卡片列表的示例

在其他设备端屏幕上展现示例。 图片

图片卡片

图片卡片就是一系列图片集合,在仅展示图片的场景下,建议使用图片卡片模式。

图片卡片格式

"card": {
    "type": "image",
    "token":"{{STRING}}",
    "list": [
        {
            "src":"{{STRING}}",
            "thumb":"{{STRING}}"
        },
        {
            "src":"{{STRING}}",
            "thumb":"{{STRING}}"
        },
        {...}
    ],
    "cueWords":[
        "{{STRING}}",
        "{{STRING}}",
        "{{STRING}}",
        ...
    ]
}

图片卡片参数说明

参数名 描述 类型 是否必须
type 卡片类型,固定值image。 string
token 卡片的token,每个卡片的token唯一。 string
list 卡片列表。 -
src 图片地址。 string
thumb 图片缩略图地址。 string
cueWords 引导用户进行下一轮对话的提示样例,用户可以点击提示样例进行快捷输入。 string

应用举例

在companion app上图片卡片列表的示例。

图片卡片列表的示例

在其他设备端屏幕上展现示例。 图片

Screen.LinkClicked事件

在有屏设备端(companion app除外),如果卡片或者卡片列表配置了URL地址,当用户点击卡片或者卡片列表时,DuerOS会向技能发送Screen.LinkClicked事件,技能收到该事件后会返回需要展现的内容。

消息样例

{
    "type": "Screen.LinkClicked",
    "url": "{{STRING}}",
    "requestId": "{{STRING}}",
    "timestamp": {{INT32}}
    "token": "{{STRING}}"
}

参数说明

参数名 描述 类型 是否必须
type 请求类型,固定值Screen.LinkClicked。 string
url 点击卡片或卡片列表的URL地址。 string
requestId 标识本次请求的唯一ID。 string
timestamp 请求时间戳,单位是秒。 int32
token 如果当前展示页面是云端下发的卡片渲染的结果,上报事件时会携带卡片的token。 string
token 如果当前展示页面是云端下发的卡片渲染的结果,上报事件时会携带卡片的token。 string

帐号关联卡片

帐号关联卡片用于有自己的帐号体系的技能。在用户使用技能过程中,如果技能需要用户登录,就可以返回这个卡片引导用户登录。 卡片会在设备对应的展示屏幕中展现登录链接,当用户登录成功后,DuerOS会获取到用户帐号对应的授权accessToken。此后,DuerOS在访问技能时,都会携带该用户账户对应的accessToken。帐号的登录授权通过标准OAuth 2.0协议完成,请参考账户关联了解更多内容。

消息样例

"card": {
    "type": "LinkAccount"
    "token": "{{STRING}}"
}

参数说明

参数名 描述 类型 是否必须
type 请求类型,固定值LinkAccount。 string
token 卡片的token,每个卡片的token唯一。 string

LinkAccountSucceeded事件

当用户使用帐号关联卡片进行账户登录并成功授权时,DuerOS会向技能上报该事件。

消息样例

{
    "type": "Connections.Response",
    "name": "LinkAccountSucceeded",
    "requestId": "{{STRING}}",
    "timestamp": {{INT32}},
    "token": "{{STRING}}"
}

参数说明

参数名 描述 类型 是否必须
type 请求类型,取固定值Connections.Response。 string
name 请求的动作,取固定值LinkAccountSucceeded。 string
requestId 标识本次请求的唯一ID。 string
timestamp 请求时间戳,单位是秒。 int32
token 对应帐号关联卡片的token。 string