微信消息自动化与定时推送指南
本文档用于沉淀“通过代码定时向微信联系人或群聊发送消息”的基础认知、方案边界和落地检查项,避免后续再从零区分 Wechaty、Puppet、GeWe、Hook SDK、桌面自动化和企业微信官方通道。
维护: 微信个人号没有面向普通好友和普通微信群的官方服务端发送 API。非官方项目、第三方 API 平台、微信客户端版本、登录能力、风控策略和价格策略变化很快。本文最后核对日期为 2026-06-02,实际落地前必须重新核对项目 README、官方文档、平台价格、风险说明和测试账号可用性。
先看结论
如果是公司正式通知、告警、日报,优先使用 企业微信群机器人 或 企业微信应用消息。这是官方通道,权限、审计和长期稳定性更清晰。
如果必须向普通个人微信好友或普通微信群发送消息,再按下面优先级判断:
| 需求 | 优先路线 | 说明 |
|---|---|---|
| 想快速通过 HTTP API 发普通微信消息 | GeWe 这类第三方 SaaS API 平台 | 接入快,平台方处理登录、节点和回调;但不是微信官方 API |
| 想写机器人业务逻辑,能接受研究底层接入 | Wechaty + 可用 Puppet | API 清晰,难点是 Puppet 登录和稳定性 |
| 想接入已有后端系统,能维护 PC 微信环境 | WeChatFerry、wxbot 类 Hook SDK | 可暴露 HTTP/SDK,依赖客户端版本和本地进程 |
| 想模拟正常用户操作 PC 微信 | wxauto、easyChat、UI 自动化 | 行为直观,适合低频;依赖 Windows 桌面状态 |
| 只想试历史 Web 微信方案 | itchat / Web 微信类 | 很多账号无法登录,不建议作为新方案主线 |
所有个人微信自动化方案都应限制在授权、低频、白名单场景。不要用于营销、骚扰或规避平台规则。
核心认知
微信相关方案要分清三层:
1 | 传输方式:HTTP、WebSocket、gRPC、TCP |
HTTP、WebSocket、gRPC 只是“怎么传数据”,不代表微信官方提供了普通个人号消息发送接口。
看到一个项目提供下面这种接口:
1 | POST /api/sendtxtmsg |
只能说明该项目对外暴露了 HTTP 控制入口。它背后可能是 PC 微信 Hook、本地客户端、远程执行节点、私有协议或桌面自动化。
普通 Web 系统常能通过抓包复用接口,是因为它本来就暴露浏览器 API。个人微信更接近私有 IM 客户端,需要处理登录态、设备身份、长连接、消息同步、联系人和群 ID、客户端版本兼容以及服务端风控,所以不能按“抓一个 URL 就能长期调用”的思路理解。
方案分类
官方企业通道
适合公司通知、告警、日报和系统事件推送。
常见方式:
- 企业微信群机器人 webhook:适合固定群通知、构建结果、告警和日报。
- 企业微信应用消息:适合向指定成员、部门、标签推送,权限和审计更完整。
- 公众号客服消息:适合公众号会话内服务通知,但受公众号能力和会话窗口限制。
企业微信群机器人的典型调用形态:
1 | curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=机器人KEY' \ |
注意:
- webhook 地址等同发送凭证,不能提交到 Git。
- 生产应使用密钥管理或环境变量。
- 对外暴露的回调服务要校验签名、IP、token 或来源。
- 企业微信消息也要限频,避免告警风暴。
第三方 SaaS API 平台
代表:GeWe。
这类平台把个人微信能力包装成标准 HTTP API 和 Webhook。以 GeWe 文档为例,它提供执行节点和事件回调机制;快速开始流程是获取 Token、扫码登录微信、调用接口发送消息、配置回调接收消息。
适合场景:
- 想快速把普通微信消息发送能力接入后端任务。
- 不想自己维护 Wechaty Puppet、PC 微信 Hook 或桌面自动化环境。
- 可以接受平台依赖、平台计费、数据安全评估和账号风控风险。
典型调用形态:
1 | 定时任务 |
GeWe 发送文字消息接口示例形态:
1 | POST /gewe/v2/api/message/postText |
关键参数:
appId:已登录微信实例标识。toWxid:目标好友或群聊 ID,群通常类似xxx@chatroom。content:文本内容。ats:群内 @ 人时使用,同时content中也需要包含对应@xxx文本。
落地前必须确认:
- 是否支持当前微信号登录。
- 是否能拿到稳定的好友和群
wxid。 - 是否支持目标消息类型,例如文本、图片、文件、群 @。
- 回调是否能满足消息去重、重试和安全校验。
- 价格、并发、频率、账号数、数据留存和服务可用性。
- 平台风险说明中列出的封号、限制聊天、批量发送等风险。
Wechaty 与 Puppet
Wechaty 是统一机器人 SDK。业务代码面向 Contact、Room、Message 这些对象:
1 | const contact = await bot.Contact.find({ alias: '张三' }) |
真正如何连接微信,由 Puppet 决定:
1 | 业务代码 |
可以把 Puppet 类比成 provider / driver / adapter。但要注意:云厂商 OSS、微信支付、企业微信 API 通常是官方通道;个人微信 Puppet 多数不是微信官方 provider。
使用 Wechaty 前先验证:
- 当前微信号能否登录目标 Puppet。
- 能否找到测试好友和测试群。
- 能否发送个人文本消息。
- 能否发送群文本消息。
- 能否长时间在线。
- 断线后是否能恢复。
- 是否依赖付费 token。
- Puppet 是否仍在维护。
Hook SDK / HTTP 包装
代表:WeChatFerry、jwping/wxbot。
这类项目通常接入 PC 微信内部能力,再向外暴露 Python、HTTP、Node.js、Go、C# 等客户端。
适合场景:
- 需要把微信发送能力接入已有后端系统。
- 需要 HTTP API 或多语言客户端。
- 能接受维护指定 Windows、PC 微信版本和本地进程。
主要风险:
- 通常依赖 Windows、PC 微信版本和本地进程。
- Hook / 逆向类项目有账号、稳定性、合规和安全风险。
- 项目升级、微信升级、杀毒软件、系统权限都可能影响运行。
桌面自动化
代表:wxauto、easyChat、SiverWXbot_plus、pyautogui、uiautomation。
桌面自动化更贴近“通过代码实现正常用户行为”:
1 | 打开 PC 微信 |
适合场景:
- 本机 Windows 桌面可以长期运行。
- 消息低频、目标有限。
- 更看重“像人在操作 PC 微信”,不要求后端无界面部署。
主要风险:
- 微信窗口状态变化会影响脚本。
- 微信客户端升级可能导致控件识别失效。
- 系统锁屏、远程桌面断开、分辨率变化可能影响操作。
- 不适合高频、大规模群发。
定时批量发送设计
不要把定时批量发送写成简单循环。推荐拆成:
1 | 任务配置 |
基础配置示例:
1 | { |
必须具备:
- 白名单:只允许配置内的目标。
dryRun:上线前只打印,不真正发送。- 目标 ID:优先固定
wxid或平台 ID,减少重名误发。 - 发送间隔:防止误操作瞬间刷屏。
- 批次限制:一次任务限制最大目标数。
- 日志:记录任务 ID、目标、内容摘要、时间、结果。
- 幂等:同一任务同一目标不要重复发送。
- 失败策略:失败跳过并记录,不要无限重试。
- 人工确认:重要或大范围通知发送前先确认内容。
- 账号监控:检测登录状态、掉线、发送失败率。
验证顺序
无论选择哪条路线,按这个顺序验证:
- 准备测试微信号、测试好友、测试群,不要先用生产群。
- 跑通登录。
- 获取并记录测试好友和测试群 ID。
- 发送一条个人文本消息。
- 发送一条群文本消息。
- 测试消息回调、去重和重试。
- 跑一次
dryRun批量任务。 - 跑一次真实小批量任务。
- 连续运行 24 小时,观察掉线、内存和失败率。
- 记录微信版本、项目版本、平台版本、系统版本和失败现象。
- 再决定是否投入长期使用。
选型备忘
| 项目 / 通道 | 类型 | 当前判断 |
|---|---|---|
| 企业微信群机器人 | 官方 webhook | 公司群通知首选,系统集成简单 |
| 企业微信应用消息 | 官方 API | 权限、审计、目标选择更完整 |
| GeWe | 第三方 SaaS API | 普通微信 HTTP API 接入快,但有平台依赖和风控风险 |
| Wechaty | 统一机器人 SDK | 适合写机器人逻辑,重点验证 Puppet |
| WeChatFerry | Hook SDK | 适合二次开发和服务化,维护成本高 |
| jwping/wxbot | Hook + HTTP API | 适合外部系统调用,依赖本机微信 |
| wxauto | Windows 桌面自动化 | 接近正常用户操作,适合低频个人场景 |
| easyChat | 成品微信助手 | 定时发送、群发、自动回复场景贴近 |
| SiverWXbot_plus | 成品微信机器人 | 定时任务和多目标群发能力较贴近 |
| Web 微信 / itchat | Web 协议 | 登录限制多,不建议新方案主线 |
不建议做的事
- 不要把个人微信当作强 SLA 的生产通知通道。
- 不要把 webhook、token、appId、wxid、登录态写入仓库。
- 不要用普通微信群做高频告警刷屏。
- 不要在没有白名单和
dryRun的情况下跑群发。 - 不要以营销、骚扰或规避平台规则为目标设计自动化。
- 不要只看示例代码能发消息,就默认可以长期稳定运行。
- 不要在没有数据安全评估的情况下接入第三方 SaaS API 平台处理敏感聊天数据。
参考
- GeWe 平台介绍: https://doc.geweapi.com/
- GeWe 快速开始: https://doc.geweapi.com/doc-3146201
- GeWe 回调结构说明: https://doc.geweapi.com/doc-8680561
- GeWe 消息订阅: https://doc.geweapi.com/doc-3146208
- GeWe 发送文字消息: https://s.apifox.cn/apidoc/shared-993d830a-8c1a-4904-8291-005df3a8c61e/api-139908313
- GeWe 风险说明: https://doc.geweapi.com/doc-6356339
- Wechaty GitHub: https://github.com/wechaty/wechaty
- Wechaty Puppet Providers: https://wechaty.js.org/docs/puppet-providers/
- Wechaty Contact API: https://wechaty.js.org/docs/api/contact/
- Wechaty Room API: https://wechaty.js.org/docs/api/room/
- WeChatFerry: https://github.com/lich0821/WeChatFerry
- wxauto: https://github.com/cluic/wxauto
- easyChat: https://github.com/LTEnjoy/easyChat
- SiverWXbot_plus: https://github.com/SiverKing/SiverWXbot_plus
- jwping/wxbot: https://github.com/jwping/wxbot
- 企业微信群机器人官方文档: https://developer.work.weixin.qq.com/document/path/91770
- 企业微信应用消息官方文档: https://developer.work.weixin.qq.com/document/path/90236
- 微信公众号客服消息官方文档: https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Service_Center_messages.html
迭代记录
- 2026-06-02:补充 GeWe 这类第三方 SaaS API 平台路线,重排文档结构,压缩重复解释,强化选型、定时批量发送设计和验证清单。
- 2026-06-02:初始化微信消息自动化选型指南,整理官方企业通道、Wechaty/Puppet、桌面自动化、Hook SDK、定时批量发送工程设计和验证清单。
