中文 · English
一套 HTTP API,接住企业微信的全部能力。
从零复现的企业微信协议网关:不 hook、不代理真实客户端,而是把企微 Mac / iPad 的 ilink2(mars + MMTLS + 图灵盾) 登录与消息协议从头实现出来。收发消息、富媒体、 客户 / 联系人、群聊、朋友圈、标签、CDN 媒体 —— 全部收进同一套接口,Webhook 实时回调。
- 🌐 在线展示页:https://lichaohuai.github.io/wecom-protocol-gateway/
- 🐍 接入示例:
wecom_echo_bot.py—— 收到「你好」自动回复,只用 Python 标准库 - ✈ 交流群(Telegram):https://t.me/+c_MxEDbFbPs3NDRl
- 🔁 姊妹项目:个人微信版 → wechat-protocol-gateway
本仓库只演示接口调用与能力清单,不含任何服务地址、密钥或协议逆向代码。示例里的
<你的网关地址>/<APP_KEY>等均为占位符,换成你自己的即可。
| 能力域 | 代表接口 |
|---|---|
| 登录 & 客户端 | 扫码登录 · 验证码登录 · 自动登录 · keep_login 保活 · 推链接登录 · 多客户端管理 · 代理设置 |
| 消息收发 | 发文本 / @群 · Webhook 收消息 · 撤回 · 已读上报 · 语音转文字 · 消息确认 |
| 富媒体消息 | 图片 · 视频 / 大视频 · 文件 · 语音 · GIF 表情 · 链接 · 位置 · 名片 · 引用 · 合并转发 · 小程序 · 视频号商品/直播/视频 |
| 联系人 & 客户 | 同步通讯录 · 搜索加好友(微信+企微) · 同意/删除 · 客户列表 · 内部成员 · 拉黑 · 名片加 · 二维码加 |
| 标签 | 新建/修改/删除标签 · 给联系人打标签 · 同步标签列表 |
| 群聊 | 建内部/外部群 · 群列表 · 成员详情 · 邀请/踢人 · 改群名/公告/备注/头像 · 群管理员 · 群二维码 · 转让群主 · 解散/退群 · 短链解析 |
| 朋友圈 | 发朋友圈 · 详情/记录 · 点赞/评论 · 删除 · 封面/签名 |
| CDN 媒体 | CDN 凭证 · 上传 wwfile · c2c 下载 · 收到媒体下载 · 微信侧下载 · 大文件 |
| 用户 & 企业 | 个人资料 · 修改资料 · 企业信息 · 绑定微信信息 · 个人二维码名片 |
一个「收到『你好』就自动回复」的最小示例,只用 Python 标准库,不需要 pip install。
1. 注册账户,拿到 app_key / app_secret / webhook_secret。
2. 初始化企微设备:
curl -X POST '<你的网关地址>/v1/wecom/device/gen' \
-H 'X-App-Key: <APP_KEY>' -H 'X-App-Secret: <APP_SECRET>'3. 扫码登录(企业微信 App 扫二维码;新设备首登可能要验证码),轮询登录状态直到 success。
4. 填配置并运行示例(编辑脚本顶部 CONFIG 后):
python3 wecom_echo_bot.py
# [wecom_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 /v1/wecom/msg/send_text |
{device_id, conversation_id, content} |
| 设回调 | POST /device/callback |
{device_id, callback_url} |
| 收回调 | 你的 callback_url(示例 /hook) |
见下方回调结构 |
- 私聊:
S:<对方uin> - 群聊:
R:<群id>
{
"device_id": "...",
"notify_type": 11010,
"message": {
"msg_type": 2,
"sender": "<对方uin>",
"roomid": "0",
"content": "你好"
}
}notify_type:11010=NewMsg / 11013=BatchNewMsg(收到新消息),其它多为账号状态类事件。msg_type:2=文本(1=撤回 · 5=图片 · 6=语音 · 7=视频 · 8=文件 · 10=GIF · 11=名片 · 12=小程序 …)。roomid:非"0"是群消息 → 回群里(R:群id);否则私聊 → 回发送者(S:sender)。- 回调请求头带
X-Signature: hex(HMAC-SHA256(webhook_secret, 原始body)),示例用webhook_secret验签防伪造。
已通过 GitHub Pages 发布,直接打开:
https://lichaohuai.github.io/wecom-protocol-gateway/
(页面即仓库里自包含的 index.html;fork 后在 Settings → Pages → Branch main / root 开启,即可得到你自己的 https://<用户名>.github.io/<仓库名>/。)
- 新设备登录初期别猛加好友 / 拉群 / 群发,先少量使用养设备。
- 提示掉线 / 需重新验证属正常现象,重新扫码登录即可。
- 同一账号别同时在多台设备登录(会互相挤下线)。
请在合法合规、获得授权的前提下使用,自负账号安全与风控责任。与腾讯 / 企业微信官方无任何关联。