Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

企业微信协议网关 · WeCom HTTP API

中文 · English

一套 HTTP API,接住企业微信的全部能力。

从零复现的企业微信协议网关:不 hook、不代理真实客户端,而是把企微 Mac / iPad 的 ilink2(mars + MMTLS + 图灵盾) 登录与消息协议从头实现出来。收发消息、富媒体、 客户 / 联系人、群聊、朋友圈、标签、CDN 媒体 —— 全部收进同一套接口,Webhook 实时回调

本仓库只演示接口调用与能力清单,不含任何服务地址、密钥或协议逆向代码。示例里的 <你的网关地址> / <APP_KEY> 等均为占位符,换成你自己的即可。


能力总览(110+ 接口)

能力域 代表接口
登录 & 客户端 扫码登录 · 验证码登录 · 自动登录 · keep_login 保活 · 推链接登录 · 多客户端管理 · 代理设置
消息收发 发文本 / @群 · Webhook 收消息 · 撤回 · 已读上报 · 语音转文字 · 消息确认
富媒体消息 图片 · 视频 / 大视频 · 文件 · 语音 · GIF 表情 · 链接 · 位置 · 名片 · 引用 · 合并转发 · 小程序 · 视频号商品/直播/视频
联系人 & 客户 同步通讯录 · 搜索加好友(微信+企微) · 同意/删除 · 客户列表 · 内部成员 · 拉黑 · 名片加 · 二维码加
标签 新建/修改/删除标签 · 给联系人打标签 · 同步标签列表
群聊 建内部/外部群 · 群列表 · 成员详情 · 邀请/踢人 · 改群名/公告/备注/头像 · 群管理员 · 群二维码 · 转让群主 · 解散/退群 · 短链解析
朋友圈 发朋友圈 · 详情/记录 · 点赞/评论 · 删除 · 封面/签名
CDN 媒体 CDN 凭证 · 上传 wwfile · c2c 下载 · 收到媒体下载 · 微信侧下载 · 大文件
用户 & 企业 个人资料 · 修改资料 · 企业信息 · 绑定微信信息 · 个人二维码名片

快速上手(Python echo bot)

一个「收到『你好』就自动回复」的最小示例,只用 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) 见下方回调结构

会话寻址 conversation_id

  • 私聊:S:<对方uin>
  • 群聊:R:<群id>

消息回调 body

{
  "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)

已通过 GitHub Pages 发布,直接打开:

https://lichaohuai.github.io/wecom-protocol-gateway/

(页面即仓库里自包含的 index.html;fork 后在 Settings → Pages → Branch main / root 开启,即可得到你自己的 https://<用户名>.github.io/<仓库名>/。)


风控提示

  • 新设备登录初期别猛加好友 / 拉群 / 群发,先少量使用养设备。
  • 提示掉线 / 需重新验证属正常现象,重新扫码登录即可。
  • 同一账号别同时在多台设备登录(会互相挤下线)。

请在合法合规、获得授权的前提下使用,自负账号安全与风控责任。与腾讯 / 企业微信官方无任何关联。

License

MIT

About

企业微信协议网关 · 一套 HTTP API 接住企微 收发消息/客户联系/群聊/朋友圈/CDN媒体 · Webhook 回调 · Python 示例 | WeCom (Enterprise WeChat) HTTP API gateway

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages