中文 · English
一套 HTTP API,接住微信的全部能力。
从零复现的个人微信协议网关:不 hook、不代理真实客户端,而是把微信 Mac / iPad 的 mars 传输 · MMTLS · HybridEcdh 登录与消息协议从头实现出来。收发消息、富媒体、朋友圈、 视频号、公众号、小程序、搜一搜 —— 全部收进同一套接口,Webhook 实时回调。
- 🌐 在线展示页:https://lichaohuai.github.io/wechat-protocol-gateway/
- 🐍 接入示例:
wechat_echo_bot.py—— 收到「你好」自动回复,只用 Python 标准库 - ✈ 交流群(Telegram):https://t.me/+gvnJ-0fg6P85Yjhl
- 🔁 姊妹项目:企业微信版 → wecom-protocol-gateway
本仓库只演示接口调用与能力清单,不含任何服务地址、密钥或协议逆向代码。示例里的
<你的网关地址>/<APP_KEY>等均为占位符,换成你自己的即可。
| 能力域 | 代表接口 |
|---|---|
| 登录 & 会话 | 扫码登录 · 推手机免码登录 · 新设备滑块自动过 · 会话自动续期 |
| 消息收发 | 发文本 / @群 · Webhook 收消息 · 消息 poll · 语音转文字 · 文本翻译 |
| 富媒体消息 | 图片 · 视频 · 文件 · 语音(自动转 SILK) · 名片 · 引用 · 链接卡片 · 小程序卡片 · 表情 · 撤回 |
| 好友 & 联系人 | 加/删好友 · 备注 · 标签 · 置顶 · 搜索陌生人 · 本地全文搜索 · 收藏管理 |
| 群聊 | 建群 · 链接加群 · 邀请/踢人 · 群公告 · 群成员 · 改群名 · 转让群主 · 退群 |
| 朋友圈 | 发文字/图文/视频 · 分享文章 · 时间线 · 点赞评论 · 删除 · 搜索 |
| 视频号 | 推荐流 · 详情 · 搜一搜 · 主页 · 粉丝列表 · 私信收发 · 点赞/评论/关注 |
| 视频号直播 | 直播广场 · 进直播间 · 弹幕评论 · 福袋抽奖 · 礼物 · 在线数同步 |
| 公众号 | 搜索/关注 · 文章列表 · 正文详情 · 阅读点赞数 · 点赞/评论 |
| 小程序 | jslogin 拿 code · 云函数 · 通用 wxAPI · 获取手机号 · 授权 · 短链 |
| 搜一搜 | 统一搜索 · 账号 · 视频号 · 文章 · 朋友圈 |
| 第三方登录 | 网页 OAuth · 扫码登录授权 (snsapi_login / userinfo) |
| CDN 媒体 | 图/视频/文件上传下载 · 大文件分块 · 微信/朋友圈/收藏/表情媒体下载 · 私有化 CDN |
| 电商 | 搜索商品 · 小店商品 · 商品详情 · 电商网关 |
一个「收到『你好』就自动回复」的最小示例,只用 Python 标准库,不需要 pip install。
1. 注册账户,拿到 app_key / app_secret / webhook_secret。
2. 初始化设备(= 一个待登录的微信号):
curl -X POST '<你的网关地址>/device/init' \
-H 'X-App-Key: <APP_KEY>' -H 'X-App-Secret: <APP_SECRET>'
# → {"device_id":"m............................"}3. 扫码登录(浏览器打开二维码页,手机扫;新设备首登过一次滑块):
<你的网关地址>/login/qr/view?device_id=<DEVICE_ID>&app_key=<APP_KEY>&app_secret=<APP_SECRET>
4. 填配置并运行示例(编辑脚本顶部 CONFIG 后):
python3 wechat_echo_bot.py
# [wechat_echo_bot] 监听 ('0.0.0.0', 9000), 收到内容=='你好' 就自动回复5. 把该设备的消息回调指向本脚本:
curl -X POST '<你的网关地址>/device/callback' \
-H 'X-App-Key: <APP_KEY>' -H 'X-App-Secret: <APP_SECRET>' \
-H 'Content-Type: application/json' \
-d '{"device_id":"<DEVICE_ID>","callback_url":"http://<本机公网地址>:9000/hook"}'本机没有公网地址就用 ngrok / frp 转发一个公网 URL 出来再填。
6. 找个人给这个微信号发「你好」,观察脚本日志 + 是否收到自动回复。
| 用途 | 接口 | 说明 |
|---|---|---|
| 鉴权 | 请求头 X-App-Key / X-App-Secret |
浏览器直开类接口改用 ?app_key=&app_secret= |
| 发文本 | POST /message/send |
{device_id, to, content},to = 对方 wxid 或群 id(xxx@chatroom) |
| 设回调 | POST /device/callback |
{device_id, callback_url} |
| 收回调 | 你的 callback_url(示例 /hook) |
见下方回调结构 |
{
"device_id": "m...",
"message": {
"new_msg_id": 123456789,
"from": "wxid_xxx",
"to": "wxid_self",
"msg_type": 1,
"content": "你好",
"create_time": 1710000000
}
}from:私聊=对方 wxid;群聊=xxx@chatroom。msg_type:1=文本(其它类型见示例脚本注释)。content:群消息正文前带wxid_sender:\n前缀,示例里已拆开处理。- 回调请求头带
X-Signature: hex(HMAC-SHA256(webhook_secret, 原始body)),示例用webhook_secret验签防伪造。
已通过 GitHub Pages 发布,直接打开:
https://lichaohuai.github.io/wechat-protocol-gateway/
(页面即仓库里自包含的 index.html;fork 后在 Settings → Pages → Branch main / root 开启,即可得到你自己的 https://<用户名>.github.io/<仓库名>/。)
- 新设备登录前 3 天:别发朋友圈、别主动加好友、别拉群建群,只少量发消息。
- 提示「风控 / 环境异常」退出登录属正常现象,重新登录即可。
- 同一个微信号别同时在多台设备登录(会互相挤下线)。
请在合法合规、获得授权的前提下使用,自负账号安全与风控责任。与腾讯 / 微信官方无任何关联。