每天都要用微信,尤其是运维、开发、站长一类,遇到服务器宕机或接口出错,第一时间收到通知才有可能避免事故扩大。所以,很多人选择将系统消息直接推送到微信。
不过说实话,用微信推送消息一直是个“高危操作”。从早期的 Wechaty 到后来的 hook 插件,只要一用就封号,搞得人心惶惶,微信机器人几乎成了禁区。
但现在,有了一个更稳妥的替代方案:WePush。
项目简介
WePush 是一个利用 PC 微信模拟人工点击方式实现消息发送的非官方微信推送工具,它基于 weauto 项目构建,核心优势就是:安全、稳定、零封号风险。
它的原理非常简单粗暴——模仿人手操作发消息,没有调用微信的接口、没有注入代码,自然也就绕开了微信的封号机制。
WePush 本质上是一个本地部署的 HTTP 服务,通过 HTTP API 接收消息请求,放进 Redis 队列,然后由消息处理器自动在微信客户端执行“点击-发送”的操作。
技术架构概览
核心组件:
- FastAPI 主服务 (
main.py
)
提供 HTTP API 接口,接收并验证消息,将任务写入 Redis 队列。 - 消息处理器 (
mq.py
)
监听 Redis 队列,自动执行消息发送任务,模拟人工操作。
技术依赖:
- FastAPI:高性能 Web 框架
- Redis:消息存储与队列
- wxauto:微信 Windows 端自动化操作模块
- uvicorn:异步 ASGI 服务器
环境要求
- Windows 系统
- Python 3.12+
- Redis 服务(默认地址:
redis://localhost
) - 微信 PC 客户端已登录
使用方法
- 安装依赖:
pip install -r requirements.txt
- 启动 Redis 服务,并保持微信客户端登录状态。
- 启动 API 服务:
python main.py
默认监听地址为:http://localhost:8000
- 启动消息处理服务:
python mq.py
- 注意:
推送前需提前打开目标好友或群聊的独立聊天窗口,否则消息不会被发送。
打包为可执行文件
可使用 pyinstaller
打包项目为独立的 EXE 文件:
pyinstaller build.spec
API 说明
- 接口地址:
POST /api/sendMsg
- 请求类型:
application/json
- 参数示例:
{ "receiver": "张三", "msg": "服务器出问题了,快看!" }
- 返回示例:
{ "code": 1, "taskId": 123, "msg": "任务提交成功" }
常见问题解答
- Q:发送失败怎么办?
- 微信是否已登录?
- 聊天窗口是否打开?
- Redis 是否正常运行?
- Q:如何修改 Redis 连接?
- 直接修改
main.py
和mq.py
中的redis_url
即可。
- 直接修改
使用建议
- 保持微信客户端处于前台运行状态
- 优先使用独立聊天窗口发送消息,提高成功率
- 推荐配合服务监控工具使用
© 版权声明
THE END
暂无评论内容