消息推送模块使用文档 #
SmartChart 支持通过数据源配置直接发送钉钉、企业微信、飞书三家平台的消息。本文档说明各模块的配置方式与消息写法。
命名规范 #
| 后缀 | 含义 | 鉴权方式 |
|---|---|---|
Msg |
企业应用消息(需创建企业应用) | AppID/CorpID + Secret → 换取 access_token |
Webhook |
机器人 Webhook(只需一个 URL) | 直接 POST 到 Webhook 地址,可选签名 |
简单场景优先用 Webhook,无需创建企业应用,在群聊里添加机器人即可获取 URL。
一、钉钉 #
1.1 dingdingMsg(企业应用消息) #
通过钉钉企业自建应用发送工作通知,接收方为应用可见范围内的员工。
前置准备 #
- 登录 钉钉开放平台 → 应用开发 → 创建企业自建应用
- 记录 AppKey(即 corpid)和 AppSecret
- 在应用详情页获取 AgentID
- 在「权限管理」中开通「工作通知」权限
数据源配置 #
| 字段 | 填写值 | 说明 |
|---|---|---|
| 驱动类型 | dingdingMsg |
|
| host | 接收人 userid,多个用 , 分隔;@all 表示全员 |
例如 zhangsan,lisi |
| 用户 | corpid 或 AppKey | |
| 密码 | AppSecret | |
| db | AgentID(数字) | 必填 |
消息写法 #
-- ① 纯文本 / Markdown → 自动包装为 markdown 类型
## 告警通知
> **CPU 使用率 95%**,请及时处理
-- ② 完整钉钉消息 JSON(含 msgtype 字段)→ 直接使用
{"msgtype":"text","text":{"content":"hello"}}
-- ③ JSON 中也可以指定接收人(覆盖数据源配置)
{"msgtype":"markdown","markdown":{"title":"日报","text":"今日数据正常"},"userid_list":"zhangsan"}
支持的消息类型 #
text / markdown / image / file / link / oa / action_card / feed_card
1.2 dingdingWebhook(机器人 Webhook) #
在钉钉群聊中添加「自定义机器人」,获取 Webhook 地址后直接发消息。
前置准备 #
- 钉钉群 → 设置 → 智能群助手 → 添加机器人 → 自定义
- 复制 Webhook 地址(
https://oapi.dingtalk.com/robot/send?access_token=xxx) - 可选:开启「加签」,复制签名密钥
数据源配置 #
| 字段 | 填写值 | 说明 |
|---|---|---|
| 驱动类型 | dingdingWebhook |
|
| host | 完整 Webhook 地址(含 access_token 参数) | 必填 |
| 密码 | 加签密钥(字符串) | 不开启加签则留空 |
消息写法 #
-- ① Markdown(自动识别,包装为 markdown 类型)
## 告警
> CPU 使用率 **95%**
-- ② 完整钉钉机器人消息 JSON
{"msgtype":"text","text":{"content":"hello"}}
安全设置说明 #
| 安全方式 | password 字段 |
|---|---|
| 无 | 留空 |
| 关键字 | 留空(关键字在钉钉后台配置,不影响发送) |
| IP 段 | 留空(在钉钉后台配置) |
| 加签 | 填写签名密钥 |
二、企业微信 #
2.1 qiweiMsg(企业应用消息) #
通过企微自建应用发送应用消息,接收方为应用可见范围内的成员。
前置准备 #
- 登录 企微管理后台 → 应用管理 → 创建应用
- 记录 企业 ID(「我的企业」→ 企业信息)
- 记录应用 Secret(应用详情页)
- 记录应用 AgentID(应用详情页)
- 在「可见范围」中添加接收消息的成员
数据源配置 #
| 字段 | 填写值 | 说明 |
|---|---|---|
| 驱动类型 | qiweiMsg |
|
| host | 接收人账号,多个用 | 分隔;@all 表示全员 |
例如 zhangsan|lisi |
| 用户 | 企业 ID(corpid) | |
| 密码 | 应用 Secret(corpsecret) | |
| db | 应用 AgentID(数字) | 必填 |
消息写法 #
-- ① Markdown(自动包装)
## 日报
今日数据已就绪,请查看后台
-- ② 完整企微应用消息 JSON
{"msgtype":"text","text":{"content":"hello"}}
-- ③ JSON 中指定接收人(覆盖数据源配置)
{"msgtype":"markdown","markdown":{"content":"hello"},"touser":"zhangsan"}
{
"touser" : "1359xxxxx",
-- "totag" : "4",
"msgtype" : "text",
"agentid" : xxxxxxx,
"text" : {
"content" : "$msg"
},
"safe":0
}
支持的消息类型 #
text / markdown / textcard / news / image / voice / video / file / template_card
2.2 qiweiWebhook(机器人 Webhook) #
在企微群聊中添加机器人,获取 Webhook 地址后直接发消息。
前置准备 #
- 企微群 → 右上角 → 群机器人 → 添加机器人
- 复制 Webhook 地址(
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx)
数据源配置 #
| 字段 | 填写值 | 说明 |
|---|---|---|
| 驱动类型 | qiweiWebhook |
|
| host | 完整 Webhook 地址(含 key 参数) | 必填 |
| 密码 | 留空 | 企微 Webhook 无签名机制 |
消息写法 #
-- ① 纯文本(自动识别为 text 类型)
服务器 CPU 使用率 95%,请处理
-- ② Markdown(自动识别为 markdown 类型)
## 告警
> **CPU 使用率 95%**
-- ③ 完整企微 Webhook 消息 JSON
{"msgtype":"news","news":{"articles":[{"title":"标题","url":"https://..."}]}}
支持的消息类型 #
text / markdown / image / news / file / template_card
三、飞书 #
3.1 feishuMsg(企业应用消息) #
通过飞书自建应用发送消息,支持给个人、群聊发消息。
前置准备 #
- 登录 飞书开放平台 → 创建企业自建应用
- 记录 App ID 和 App Secret
- 在「权限管理」中开通
im:message(发送消息)权限 - 在「事件与回调」中配置回调地址(若需接收消息)
- 将应用发布上线
数据源配置 #
| 字段 | 填写值 | 说明 |
|---|---|---|
| 驱动类型 | feishuMsg |
|
| host | 接收人 ID,多个用 , 分隔 |
见下方 ID 类型说明 |
| 用户 | App ID | |
| 密码 | App Secret | |
| db | receive_id_type(可选) | 见下方,留空则自动推断 |
接收人 ID 类型说明 #
| ID 前缀 | 自动推断为 | 说明 |
|---|---|---|
ou_ |
open_id |
用户的 Open ID |
oc_ |
chat_id |
群聊的 Chat ID |
| 其他 | user_id |
用户的 User ID(企业内唯一) |
也可以在 db 字段中强制指定:open_id / user_id / chat_id / union_id
消息写法 #
-- ① 纯文本
服务器 CPU 使用率 95%
-- ② 完整飞书消息 JSON
{"msg_type":"text","content":{"text":"hello"}}
-- ③ 发送群聊消息(chat_id 以 oc_ 开头)
{"msg_type":"interactive","card":{"config":{"wide_screen_mode":true},"elements":[{"tag":"div","text":{"tag":"lark_md","content":"**告警**\nCPU 95%"}}]}}
支持的消息类型 #
text / post / image / interactive / share_chat / share_user / audio / media / file / sticker
3.2 feishuWebhook(机器人 Webhook) #
在飞书群聊中添加机器人,获取 Webhook 地址后直接发消息。
前置准备 #
- 飞书群 → 设置 → 群机器人 → 添加机器人
- 复制 Webhook 地址(
https://open.feishu.cn/open-apis/bot/v2/hook/xxx) - 可选:在机器人设置中开启「签名校验」,复制签名密钥
数据源配置 #
| 字段 | 填写值 | 说明 |
|---|---|---|
| 驱动类型 | feishuWebhook |
|
| host | 完整 Webhook 地址 | 必填 |
| 密码 | 签名密钥(字符串) | 不开启签名校验则留空 |
消息写法 #
-- ① 纯文本
服务器 CPU 使用率 95%
-- ② 含 Markdown 标记 → 自动转为 post 富文本类型
## 告警
> **CPU** 使用率 95%
-- ③ 完整飞书 Webhook 消息 JSON
{"msg_type":"interactive","card":{...}}
注意:飞书 Webhook 不支持
markdown消息类型,若传入 Markdown 文本,模块会自动转为post富文本格式。
安全设置说明 #
| 安全方式 | password 字段 |
|---|---|
| 无 | 留空 |
| 签名校验 | 填写签名密钥 |
| IP 白名单 | 留空(在飞书后台配置) |
四、快速选型参考 #
| 场景 | 推荐方式 |
|---|---|
| 群聊里快速发消息 | Webhook(三家的 Webhook 都最简单) |
| 给指定员工发工作通知 | Msg(需要创建企业应用) |
| 需要消息回调/交互 | Msg(Webhook 不支持回调) |
| 不想建应用,只想发群消息 | Webhook |
五、通用消息写法规则 #
所有模块均支持以下两种写法:
写法 A:直接传消息内容(字符串) 模块根据内容自动判断消息类型(text / markdown / post)。
写法 B:传完整平台 JSON(含类型字段)
若字符串是合法 JSON 且包含平台规定的类型字段(msgtype 或 msg_type),则直接 POST,不做额外包装。
| 平台 | JSON 类型识别字段 |
|---|---|
| 钉钉 | msgtype |
| 企微 | msgtype |
| 飞书 | msg_type |