在钉钉消息推送中,设置消息边框需通过 “互动卡片(Action Card/Interactive Card)” 实现,Markdown 消息不支持边框样式。以下是具体方法:
一、使用互动卡片(Action Card)模拟边框
通过钉钉互动卡片的 容器组件属性 自定义边框效果,支持设置背景色、圆角、边框线等。
1. 基础边框样式(示例)
json
{
"msgtype": "action_card",
"action_card": {
"title": "【活动通知】",
"text": "**活动时间**:2025-04-01\n**地点**:济南槐荫区",
"bgcolor": "#F5F7FA", // 背景色(浅灰色模拟边框底纹)
"btn_orientation": "0",
"single_title": "查看详情",
"single_url": "https://example.com"
}
}
2. 带边框线的卡片(需自定义组件)
通过 interactive 卡片类型 和 容器组件 实现边框:
json
{
"msgtype": "interactive",
"card": {
"config": { "wide_screen_mode": true },
"elements": [
{
"tag": "div",
"style": {
"padding": "12px",
"border": "1px solid #E5E5E5", // 边框颜色和宽度
"borderRadius": "4px" // 圆角
},
"elements": [
{
"tag": "text",
"text": "**订单提醒**\n订单号:DD20250326001",
"style": { "fontSize": 14 }
}
]
}
]
}
}
二、关键实现步骤
1. 创建互动卡片机器人
- 在钉钉群中添加 自定义机器人,选择 “自定义关键词” 或 “加签” 安全设置,获取 Webhook 地址(参考摘要 1、9)。
2. 调用互动卡片 API
- 接口地址:https://oapi.dingtalk.com/robot/send
- 请求头:Content-Type: application/json
- 示例代码(Java):
- java
- import com.aliyun.dingtalkrobot_1_0.Client; import com.aliyun.dingtalkrobot_1_0.models.SendRequest; Client client = new Client(); SendRequest request = new SendRequest(); request.setMsgtype("interactive"); request.setCard("{/* 卡片JSON内容 */}"); client.send(request);
三、边框样式优化技巧
1. 基础属性配置
属性名 | 说明 |
border | 边框样式(格式:1px solid #E5E5E5) |
borderRadius | 圆角半径(如 4px、8px) |
padding | 内容与边框的间距(如 12px 16px) |
bgcolor | 背景色(支持 Hex 值,如 #FFFFFF 为白色底,#F5F7FA 为浅灰色底) |
2. 复杂边框场景
- 卡片分区边框:使用多个 div 组件嵌套,为不同区域设置独立边框。
- 按钮边框:对 button 组件设置 border 和 bgcolor,实现按钮样式(示例见摘要 18)。
- 阴影效果:通过 boxShadow 属性添加阴影(钉钉卡片支持部分 CSS 样式)。
四、注意事项
- 消息类型限制:Markdown 消息仅支持文本样式,不支持边框;必须使用 action_card 或 interactive 类型。interactive 卡片需通过 钉钉开放平台审核,且语法复杂度较高(参考摘要 7)。
- 调试工具:
使用钉钉 API Explorer 或 机器人测试消息 功能实时预览样式(摘要 10)。 - 兼容性:
手机端和 PC 端的边框显示效果可能略有差异,建议优先测试常用终端。
通过以上方法,可实现消息的边框美化,提升信息的结构化展示效果。