返回 Skill 列表
extension
分类: 其它无需 API Key

钉钉消息样式

提升钉钉消息展示样式,支持 Markdown、Link、ActionCard、FeedCard 等多格式,具备智能选格式、模板库和@提醒功能。

person作者: zironglvhubclawhub

钉钉消息样式 Skill

提升钉钉消息的视觉效果和交互体验,支持智能格式选择、模板库、@提醒。

官方文档: https://open.dingtalk.com/document/development/robot-message-type


支持的消息类型

| 类型 | 图片 | 按钮 | @提醒 | 最佳场景 | |------|:----:|:----:|:-----:|----------| | text | ❌ | ❌ | ✅ | 简单通知 | | markdown | ❌ | ❌ | ✅ | 报告、表格、列表 | | link | ✅ | ❌ | ❌ | 商品推荐、文章分享 | | actionCard | ✅ | ✅ | ❌ | 操作确认、选择菜单 | | feedCard | ✅ | ❌ | ❌ | 多图文列表 |

⚠️ 注意: Webhook 方式不支持纯图片(image)类型,需要图片请使用 Link 或 FeedCard


快速开始

1. 基础发送

# 文本消息
python3 ~/.copaw/skills/dingtalk-message-style/scripts/send_dingtalk.py text "内容"

# Markdown(支持表格)
python3 .../send_dingtalk.py markdown "标题" "### 内容\n| 列1 | 列2 |\n|-----|-----|\n| A | B |"

# Link 卡片(带图片)
python3 .../send_dingtalk.py link "标题" "描述" "图片URL" "跳转URL"

# 单按钮 ActionCard
python3 .../send_dingtalk.py action "标题" "描述" "按钮标题" "按钮URL"

# 多按钮 ActionCard(横向排列)
python3 .../send_dingtalk.py action_multi "标题" "描述" '[{"title":"按钮1","actionURL":"url1"},{"title":"按钮2","actionURL":"url2"}]' --btn-orientation 1

# 多图文 FeedCard
python3 .../send_dingtalk.py feed '[{"title":"标题1","picURL":"图片1","messageURL":"链接1"}]'

2. @提醒功能

# @所有人
python3 .../send_dingtalk.py markdown "标题" "内容 @所有人" --at-all

# @指定手机号
python3 .../send_dingtalk.py markdown "标题" "内容 @138xxxx" --at-mobiles "138xxxx,139xxxx"

# @指定用户ID
python3 .../send_dingtalk.py text "内容" --at-user-ids "user1,user2"

3. 使用模板

# 查看模板列表
python3 ~/.copaw/skills/dingtalk-message-style/scripts/smart_send.py --list

# 商品推荐
python3 .../smart_send.py --template goods_recommend --vars '{"商品名":"iPhone","价格":"5999","亮点":"最新款","描述":"性能强劲","图片URL":"...","商品链接":"..."}'

# 任务报告
python3 .../smart_send.py --template task_report --vars '{"时间":"2026-03-18","任务表格":"|任务|状态|\\n|A|✅|","完成数":"1","总数":"1","总结":"完成"}'

# 降价提醒
python3 .../smart_send.py --template price_alert --vars '{"商品名":"iPhone","原价":"6999","现价":"5999","降幅":"1000","图片URL":"...","商品链接":"..."}'

模板库

| 模板 | 类型 | 说明 | |------|------|------| | goods_recommend | Link | 单商品推荐 | | goods_list | FeedCard | 多商品列表 | | price_alert | Link | 降价提醒 | | task_report | Markdown | 任务报告 | | order_status | Markdown | 订单状态 | | daily_summary | Markdown | 每日总结 | | meeting_notice | ActionCard | 会议通知 | | confirm_action | ActionCard | 操作确认 | | alert_notify | Markdown | 告警通知 | | shopping_cart | Markdown | 购物车提醒 |


智能格式选择

自动根据内容选择最佳格式:

from smart_send import SmartSender

# 多商品 → FeedCard
sender = SmartSender()
sender.add_product("商品1", "图片1", "链接1", "¥99")
sender.add_product("商品2", "图片2", "链接2", "¥199")
sender.analyze_and_send()  # 自动选 FeedCard

# 单商品+图片+链接 → Link
sender = SmartSender()
sender.add_product("商品", "图片", "链接", "¥99", "描述")
sender.analyze_and_send()  # 自动选 Link

# 内容+@提醒 → Markdown
sender = SmartSender()
sender.set_title("告警")
sender.set_content("CPU超过90%")
sender.at(mobiles=["138xxxx"], at_all=False)
sender.analyze_and_send()  # 自动选 Markdown

按钮排列方向

ActionCard 多按钮支持两种排列:

# 竖直排列(默认)
--btn-orientation 0

# 横向排列
--btn-orientation 1

图片链接处理

淘宝图片 URL 需去掉 _.webp 后缀:

# 自动处理
fix_taobao_image_url(url)  # xxx.jpg_.webp → xxx.jpg

Markdown 支持的语法

| 语法 | 支持 | 说明 | |------|:----:|------| | 标题 # | ✅ | 支持 h1-h6 | | 粗体 ** | ✅ | | | 引用 > | ✅ | | | 链接 []() | ✅ | | | 代码 ` | ✅ | | | 列表 - | ✅ | | | 图片 ![]() | ❌ | 请用 Link/FeedCard |


文件结构

~/.copaw/skills/dingtalk-message-style/
├── SKILL.md
├── _meta.json
├── scripts/
│   ├── send_dingtalk.py    # 基础发送
│   └── smart_send.py       # 智能发送+模板
└── templates/
    └── templates.json      # 模板定义

常见问题

Q: 为什么图片不显示?

A:

  1. Markdown 不支持图片,请用 Link 或 FeedCard
  2. 淘宝图片需去掉 _.webp 后缀

Q: 如何@所有人?

A: 使用 --at-all 参数

Q: 如何让按钮横向排列?

A: 使用 --btn-orientation 1


版本: 1.1.0 | 更新: 2026-03-18