Skip to content
开发文档
能力中心
应用市场
WebOffice
开发者后台

消息卡片总体结构

卡片消息由config、link、i18n_items 三部分组成 卡片消息使用整体限制:

  • 所有tag字段必填
  • 卡片组件数:每个卡片组件数不得超过 20 个
  • 卡片内容阈值:每个卡片内容不得超过 15000 个字符

结构说明

名称是否必填参数类型说明
configobject
∟ allowd_operate_list[]string是否允许右键操作:disable-禁用右键操作,accept_all-启用右键操作,包括:转发、收藏、回复、多选
∟ nonsupport_clientobject可配置不在指定的客户端展示该消息
∟ ∟ client_type[]string可选pc、ios、android
∟ ∟ describestring客户端不展示卡片时的提示文本
∟ shared_cardbool是否为共享卡片消息,true: 是,false: 否。不传默认为true。具体差异可见本文的《独享/共享卡片说明》部分
∟ todo_switch否 date_pickerbool添加卡片待办状态,true:开启待办,false:关闭待办。不传默认为false。
∟ processing_staselectiontestring卡片消息处理状态,默认未处理状态。枚举值:unprocessed-未处理,processed-已处理。 不传默认为processed。
∟ filter_keystring添加卡片筛选状态,需要在开发者后台配置筛选项,详情参考添加卡片筛选状态
linkobject卡片整体的跳转链接
∟ urlstring默认的链接地址
∟ pc_urlstringPC 端的链接地址
∟ ios_urlstringiOS 端的链接地址
∟ android_urlstringAndroid 端的链接地址
i18n_itemsarray卡片的内容,支持多语言
∟ keystring语言类型,目前支持5种,枚举:简体中文:zh-CN、台湾繁体:zh-TW、英文:en-US、泰文:th-TH、日文:ja-JP
∟ valueobject卡片配置
∟ ∟ headerobject卡片标题
∟ ∟ ∟ titleobject主标题配置
∟ ∟ ∟ ∟ tagstring固定为text
∟ ∟ ∟ ∟ textobject标题文本配置
∟ ∟ ∟ ∟ ∟ typestring文本类型,支持 plain 和 markdown 两种类型
∟ ∟ ∟ ∟ ∟ contentstring文本内容
∟ ∟ ∟ subtitleobject副标题配置
∟ ∟ ∟ ∟ tagstring固定为text
∟ ∟ ∟ ∟ textobject标题文本配置
∟ ∟ ∟ ∟ ∟ typestring文本类型,支持 plain 和 markdown 两种类型
∟ ∟ ∟ ∟ ∟ contentstring文本内容
∟ ∟ elementsarray卡片内的组件配置,详情可查看具体组件说明
∟ ∟ ∟ textobject文本组件,详细结构见文本
∟ ∟ ∟ divobject多列文本组件,详细结构见多列文本
∟ ∟ ∟ imgobject图片组件,详细结构见图片
∟ ∟ ∟ carouselobject轮播图组件,详细结构见轮播图
∟ ∟ ∟ noteobject文本+小图组件,详细结构见文本+小图
∟ ∟ ∟ medium_noteobject文本+中图组件,详细结构见文本+中图
∟ ∟ ∟ hrobject线条组件,详细结构见线条
∟ ∟ ∟ actionobject交互型组件配置
∟ ∟ ∟ ∟ tagstring固定为action
∟ ∟ ∟ ∟ layoutstring布局分栏,当多个交互型组件组合放在一行时,卡片的布局适配可分几种布局:exclusive_row-每个独占一行,bisected-等分双列,trisection-等分三列,flow-流式布局;具体每个分栏效果可参考分栏示例
∟ ∟ ∟ ∟ actionsarray交互型组件
∟ ∟ ∟ ∟ ∟ buttonobject按钮组件,详细结构见按钮
∟ ∟ ∟ ∟ ∟ selectionobject列表选择器组件 ,详细结构见列表选择器
∟ ∟ ∟ ∟ ∟ date_pickerobject日期选择器组件,详细结构见日期选择器
∟ ∟ ∟ ∟ ∟ inputobject输入框组件,详细结构见输入框
∟ ∟ ∟ ∟ ∟ dropdownobject下拉按钮组件,详细结构见下拉按钮

示例代码

json

{
    "config": {
        "allowd_operate_list": [
            "accept_all"
        ],
        "filter_key": "key1",
        "nonsupport_client": {
            "client_type": [
                "pc",
                "ios",
                "android"
            ],
            "describe": "请前往XX端查看"
        },
        "shared_card": true,
        "todo_switch": true,
        "processing_state": "unprocessed"
    },
    "link": {
        "android_url": "",
        "ios_url": "",
        "pc_url": "",
        "url": "默认链路url"
    },
    "i18n_items": [
        {
            "key": "zh-CN",
            "value": {
                "header": {  // 标题配置
                    "title": {
                        "tag": "text",
                        "text": {
                            "type": "plain",
                            "content": "标题"
                        }
                    },
                    "subtitle": {
                        "tag": "text",
                        "text": {
                            "type": "plain",
                            "content": "副标题"
                        }
                    }
                },
                "elements": {  // 组件配置
                    "text":{
                    // 文本组件的json   
                    },
                    "div":{
                    // 多列文本组件的json   
                    },
                    "img":{
                    // 图片组件的json   
                    },
                    "carousel":{
                    // 轮播图组件的json   
                    },
                    "note":{
                    // 文本+小图组件的json   
                    },
                    "medium_note":{
                    // 文本+中图组件的json   
                    },
                    "hr":{
                    // 线条组件的json   
                    },
                    "action": {
                        "tag": "action",
                        "layout":"flow",
                        "actions": [
                            {
                                "button": {      
                                // 按钮组件的json
                                }
                            },
                            {
                                "dropdown": {      
                                // 下拉操作按钮组件的json
                                }
                            },
                            {
                                "selection": {      
                                // 列表选择器组件的json
                                }
                            },
                            {
                                "date_picker": {      
                                // 日期选择器组件的json
                                }
                            },
                            {
                                "input": {      
                                // 输入框组件的json
                                }
                            },        
                        ]
                    }

                }
            }
        }
    ]
}

独享/共享卡片说明

卡片消息分为独享和共享,其含义如下:

  • 共享: 当将一个卡片发送给多个用户时,多个用户共享该卡片,即业务方或某一用户对卡片进行修改,则所有用户的卡片均会改变。
  • 独享: 当将一个卡片发送给多个用户时,多个用户对该卡片状态相互独立,即某一用户对卡片进行修改,只会影响到该用户的卡片状态。

独享/共享的配置是在卡片config结构部分的shared_card字段控制的

卡片跳转说明

消息卡片提供了不同维度(层级)的链接跳转配置,分为4种:

  • 交互型组件的跳转交互
  • 非交互型组件内的跳转交互
  • 组件的跳转交互
  • 整个消息卡片的跳转交互

同时,卡片跳转链接支持分端,一般分为四个参数:android_url、ios_url、pc_url、url,其中最后一个为默认url。仅当某个端没有设置特定url时,会使用该默认url。

当卡片同时具有多个维度的链接跳转配置时,跳转触发的逻辑存在响应优先级,优先级顺序为: 交互型组件的跳转交互 = 非交互型组件内的跳转交互 > 组件的跳转交互 > 整个消息卡片的跳转交互

以下罗列4种链接的json示例(示例中省略了与链接无关的参数):

交互型组件的跳转交互

即在交互型组件内设置的跳转交互,以按钮组件举例:

json

{
    "button": {
        "tag": "button",
        "text": {
             //.....
        },
        "style": "",
        "link": {
            "android_url": "",
            "ios_url": "",
            "pc_url": "",
            "url": "默认链路url"
        },
        "key": "用于回传标识,会将该字段值回传(回传必须)",
        "required": false,
        "modal": {
             //.....
        }
    }
}

非交互型组件内的跳转交互

即在非交互组件内设置的跳转交互,以文本组件内的超链接举例:

json

{
    "text":{
        "tag": "text",
        "text": {
            "content": "[差异化链接]($key1)",
            "type": "markdown"
        },        
        "href": [
            {
                "key": "key1",
                "value": {
                    "android_url": "string",
                    "ios_url": "string",
                    "pc_url": "string",
                    "url": "https://www.baidu.com"
                }
            }
        ],
        "link": {
             //.....
        }
    }
}

组件的跳转交互

部分组件可以设置整体组件区域的点击跳转,以“文本+中图”组件为例:

json

{
    "button": {
        "tag": "button",
        "text": {
             //.....
        },
        "style": "",
        "link": {
            "android_url": "",
            "ios_url": "",
            "pc_url": "",
            "url": "默认链路url"
        },
        "key": "用于回传标识,会将该字段值回传(回传必须)",
        "required": false,
        "modal": {
             //.....
        }
    }
}

整个消息卡片的跳转交互

即在消息卡片最外层的link进行设置,点击卡片整体会进行链接跳转

json

{
    "config": {
         //.....
    },
    "link": {
        "android_url": "",
        "ios_url": "",
        "pc_url": "",
        "url": "默认链路url"
    },
    "i18n_items": {
         // ...
    }
}
回到旧版