企业微信推送没有 24 小时窗口,但不是无限量
TITLE: 企业微信推送没有 24 小时窗口,但不是无限量 EXCERPT: 企业微信没有 24 小时会话窗口,但受 API 频率与每日配额约束。自建应用配合「微信插件」是唯一既能进微信、又不受窗口限制的组合。 TAGS: 企业微信, 自建应用, 群机器人, 消息推送, DSH
微信服务号超过 24 小时就发不出模板消息。企业微信没有这个窗口,随时可推,但不等于无限量——仍受 API 调用频率和每日发送配额约束。日常一天一两条够用,批量群发时配额会成为瓶颈。
两条路径,限制不同
| 方式 | 消息落到哪 | 窗口限制 | 频率/配额 | 接入成本 |
|---|---|---|---|---|
| 自建应用 | 企业微信 App;成员关注「微信插件」后可在微信里收到 | 无 | 有 API 频率与每日配额,未认证企业更低 | 中:注册企业、建应用、配可信 IP |
| 群机器人 Webhook | 企业微信群 | 无 | 约每分钟 20 条 | 低:建群、加机器人、复制 Webhook |
关键差异在「消息落到哪」。群机器人只能发进群,接收方必须打开企业微信 App。自建应用配合「微信插件」,成员用微信扫码关注后,应用消息直接出现在微信里——这是唯一既能进微信、又不受 24 小时窗口限制的组合。只求零门槛兜底,邮件(SMTP 授权码)更简单,代价是要去邮箱看。
自建应用接入步骤
- 注册企业微信。个人可注册未认证企业,无需营业执照,但有每日配额上限,数值以管理后台为准。
- 管理后台 → 应用管理 → 创建自建应用,记下 CorpID、AgentId、Secret。
- 配置企业可信 IP,加入调用机器的出口 IP。不在白名单的调用会被拒绝,这是最常见失败原因。
- 在 DSH 设置 → IM机器人 选「企业微信应用」,填入三个参数。
- 微信扫「微信插件」二维码并关注。
DSH 侧配置落在 ,投递目标写在 的 deliveryTargets 字段。填完先打一次本地投递接口验证:
curl -s -X POST http://127.0.0.1:3080/api/dsh-im/delivery/messages \
-H 'Content-Type: application/json' \
-d '{
"botId": "wecom-app",
"targetId": "your-target-id",
"text": "**连通性测试**",
"format": "markdown"
}'
format 只接受 plain 或 markdown。该接口只监听本机回环,无需鉴权,返回 {"sent": true} 表示已受理。
确认成功与定位失败
- 本地接口层:没返回
{"sent": true},说明botId或targetId与workspaces.json的deliveryTargets对不上,或format非法。先核对配置。 - 企业微信 API 层:受理但微信没收到,多半是可信 IP 未配、Secret 错误,或 AgentId 与 Secret 不属于同一应用。按返回体错误码查后台文档。
- 接收端:进了企业微信 App 但微信没有,检查成员是否真的关注「微信插件」,以及应用可见范围是否包含该成员。
链路通后,用 DSH schedule 建定时任务。DSH 重启后会补发最近一次,短暂停机不丢当次推送。
边界与代价
自建应用前期配置麻烦:注册企业、建应用、维护可信 IP。出口 IP 是动态的(家用宽带常见),IP 一变调用就失败,需重新配置或改用固定出口。未认证企业的每日配额是硬上限,批量通知前先确认后台数字,不要按「无限制」设计。微信插件要求成员主动扫码,管理员无法代劳。
群机器人适合只给自己或小团队看的场景,每分钟 20 条对告警足够;要进微信、要长期稳定,走自建应用。