Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

微信协议网关 · 个微 HTTP API

中文 · English

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

从零复现的个人微信协议网关:不 hook、不代理真实客户端,而是把微信 Mac / iPad 的 mars 传输 · MMTLS · HybridEcdh 登录与消息协议从头实现出来。收发消息、富媒体、朋友圈、 视频号、公众号、小程序、搜一搜 —— 全部收进同一套接口,Webhook 实时回调。

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


能力总览(160+ 接口)

能力域 代表接口
登录 & 会话 扫码登录 · 推手机免码登录 · 新设备滑块自动过 · 会话自动续期
消息收发 发文本 / @群 · Webhook 收消息 · 消息 poll · 语音转文字 · 文本翻译
富媒体消息 图片 · 视频 · 文件 · 语音(自动转 SILK) · 名片 · 引用 · 链接卡片 · 小程序卡片 · 表情 · 撤回
好友 & 联系人 加/删好友 · 备注 · 标签 · 置顶 · 搜索陌生人 · 本地全文搜索 · 收藏管理
群聊 建群 · 链接加群 · 邀请/踢人 · 群公告 · 群成员 · 改群名 · 转让群主 · 退群
朋友圈 发文字/图文/视频 · 分享文章 · 时间线 · 点赞评论 · 删除 · 搜索
视频号 推荐流 · 详情 · 搜一搜 · 主页 · 粉丝列表 · 私信收发 · 点赞/评论/关注
视频号直播 直播广场 · 进直播间 · 弹幕评论 · 福袋抽奖 · 礼物 · 在线数同步
公众号 搜索/关注 · 文章列表 · 正文详情 · 阅读点赞数 · 点赞/评论
小程序 jslogin 拿 code · 云函数 · 通用 wxAPI · 获取手机号 · 授权 · 短链
搜一搜 统一搜索 · 账号 · 视频号 · 文章 · 朋友圈
第三方登录 网页 OAuth · 扫码登录授权 (snsapi_login / userinfo)
CDN 媒体 图/视频/文件上传下载 · 大文件分块 · 微信/朋友圈/收藏/表情媒体下载 · 私有化 CDN
电商 搜索商品 · 小店商品 · 商品详情 · 电商网关

快速上手(Python echo bot)

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

消息回调 body

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

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

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

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


风控提示

  • 新设备登录前 3 天:别发朋友圈、别主动加好友、别拉群建群,只少量发消息。
  • 提示「风控 / 环境异常」退出登录属正常现象,重新登录即可。
  • 同一个微信号别同时在多台设备登录(会互相挤下线)。

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

License

MIT

About

个人微信协议网关 · 一套 HTTP API 接住微信 收发消息/朋友圈/视频号/公众号/小程序/搜一搜 · Webhook 回调 · Python 示例 | Personal WeChat HTTP API gateway

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages