WeChat Broker

托管式微信消息 API 平台

让任何应用
收发你的微信消息

扫码绑定一次,拿到 API Key。之后你的脚本、AI Agent、监控系统都通过 Broker 收发微信消息 —— 平台替你独占持有那条微信连接并维护在线,你只管调 API。

零注册,扫码即用 不用公众号 / 企业微信 断线自动重连

它是怎么工作的

你的应用 各自持一个 API Key 报警脚本 · cron · CI/CD AI Agent · 聊天机器人 Grafana · 监控 · 网页客服 WeChat Broker 唯一的微信连接持有者 Key 鉴权 · 用户隔离 智能路由 · 消息编排 出站队列 · 限流分段 你的微信 扫码绑定一次 收到【应用名】开头的消息 直接回复即可对话 发 /status /lock 控制 发送 API 发到微信 你的回复 路由回 App 应用之间永不互相踢下线 —— 它们连的是 Broker,不是微信
出站:应用调 /v1/send 或 WS,Broker 排队限流后发到你微信,自动加【应用名】前缀 入站:你在微信里回一句,Broker 按路由规则转给对应应用

提示:图较宽,可左右滑动查看

三步开始,没有注册表单

01

扫码绑定微信

打开绑定页用微信扫码。这一步同时完成注册、绑定和登录,绑定成功后微信会收到一条欢迎消息。

身份完全依赖微信,没有用户名密码

02

建应用,拿 API Key

在面板里按用途各建一个应用(报警、Agent、监控…),每个应用拿到独立 Key,可单独吊销。

Key 明文只在创建那一刻显示一次

03

调 API 收发

一行 curl 就能发;要双向对话就用 WebSocket 或官方 SDK。你在微信里的回复会自动转回对应应用。

外部系统只能填 URL?用入站 Webhook

60 秒试一下

send-to-wechat.sh
# 出站:一行 curl 发到自己微信(脚本 / CI 场景)
curl -X POST https://wx.ai-conn.com/v1/send \
  -H "Authorization: Bearer sk_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{"to":"我自己","text":"服务器 CPU 95%"}'

{ "ok": true, "queued": true }

# 双向:WebSocket 收发(AI Agent 场景,或用官方 SDK)
wss://wx.ai-conn.com/v1/ws?token=sk_xxxxx
3 种
接入方式:WS / HTTP / Webhook
4000 字符
单条上限,超长自动分段
20-30 条/分
出站队列合并 + 令牌桶限流
AES-256-GCM
微信凭据加密落库

继续了解

存在的理由

一个微信号,只能有一个连接持有者

这不是设计选择,是个人微信 Bot 协议的硬限制。Broker 的全部价值,就是把这唯一的位置占住,再分给你所有应用。

直连的问题

多个应用互相踢下线

个人微信的 Bot 连接同时只允许一个长轮询客户端。报警脚本连上了,AI Agent 就掉线; AI Agent 重连,爬虫通知又断。再加上发送频率限制、超长消息分段、凭据过期重连, 每个应用都得把这些坑重复实现一遍。

Broker 的做法

平台独占连接,应用共享收发

  • 所有应用连 Broker,不直连微信,永不互踢
  • 每个应用一个独立 API Key,可单独吊销
  • 出站统一排队限流、超长分段,不用你操心
  • 凭据加密持久化,重启与断线自动恢复

适合谁用

想让微信收系统通知

服务器报警、部署完成、爬虫结果、账单提醒 —— 一个 POST 就到微信,不用装 App、不用申请公众号。

想在微信里跟 AI Agent 对话

Agent 用 WebSocket 长连接接进来,你在微信里发一句它就收到、回一句你就看到,跟聊天一样。

想给网站加个客服

网站嵌一段 script,访客点头像就连到你的微信。不用挂在电脑前守后台,手机微信里回就行。

觉得对上了?扫码就能用

一分钟后你就能从脚本里发出第一条微信消息。

接入方式

按场景挑一种,三分钟接完

长连接对话、脚本单发、外部系统只能填一个 URL —— 三种入口覆盖,互不冲突,可同时用。

主协议

WebSocket 双向

一条长连接同时收发,适合 AI Agent 对话、需要即时回复的服务。官方 SDK 已封装重连与心跳。

wss://wx.ai-conn.com/v1/ws?token=KEY
脚本 / CI

HTTP 单次发送

一个 POST 就发出去,适合 crontab、部署脚本、CI/CD 流水线里的告警通知,不用维护连接。

POST /v1/send + Bearer KEY
免 API Key

入站 Webhook

给 Grafana、Uptime Kuma、n8n 这类只能填一个 URL 的系统。面板生成专属地址,POST 即到你微信,可选 HMAC 签名。

POST /w/<slug>  {"text":"CPU 90%"}

官方 Node SDK:三行接入

agent.ts
// pnpm add wechat-broker-sdk
import { BrokerClient } from 'wechat-broker-sdk';

const client = new BrokerClient({ url: 'wss://wx.ai-conn.com', apiKey: 'sk_xxxxx' });

await client.send('我自己', '服务器报警:CPU 95%');

client.on('message', (msg) => {
  // 你在微信里回的话会到这里
  client.send(msg.from, '收到,正在处理');
});

选好了就开始

三种方式都需要先扫码绑定微信、在面板里建一个应用拿 Key。

平台能力

不只是转发,是一层消息中枢

多个应用共用一个微信号,真正麻烦的是「谁发的」「回给谁」「别被限流」。这些都在平台侧解决。

智能路由

你在微信里回一句话,Broker 按优先级判断该转给哪个应用,不用每次手动指定。

/lock 锁定/to 指定客服会话发送者绑定关键词上下文推断兜底

消息编排

PIPE

抄送把一条消息扇出给多人;应用间转发把 A 的输出直接喂给 B,带 hop 计数与 traceId 防循环。

抄送 CCA → B 转发防循环

出站队列

合并窗口 + 全局令牌桶限流,规避微信侧发送频率拒绝;超过 4000 字符自动分段按序发出。

合并窗口令牌桶自动分段

微信端指令

不用开电脑。在微信里直接发指令查状态、列应用、锁定对话、静音某个应用、拿面板链接。

/status/apps/lock/mute/panel/help

网页客服

网站嵌一段 script,展示一排客服头像,访客点谁就连谁的微信。一个坐席同刻只接一个访客,回复不会发错人。

多坐席单接粘性App Key 不进浏览器

安全与隔离

API Key 只存 bcrypt hash(明文仅创建时展示一次),微信凭据 AES-256-GCM 加密落库,用户之间完全隔离。

bcryptAES-256-GCMHTTPS / WSS

接口速览

公开接口与微信指令

业务接口用 Authorization: Bearer <KEY> 认证;Key 在面板创建,随时吊销。

方法路径认证说明
GET/health健康检查
POST/v1/sendBearer KeyHTTP 单次发送,支持抄送
GET/v1/statusBearer Key查询微信在线与队列状态
WS/v1/ws?token=<KEY>URL 参数WebSocket 双向收发(主协议)
POST/w/<slug>URL 即凭据入站 Webhook,免 Key,可选 HMAC 签名
GET/bind扫码绑定页
GET/panel会话 Cookie用户管理面板

微信端指令(在微信里直接发)

指令作用
/status查看微信在线状态、各应用连接与队列情况
/apps列出已接入的应用
/to <app> <消息>这一条消息指定发给某个应用
/lock <app>锁定对话,之后的消息都转给该应用
/unlock解除锁定,恢复智能路由
/mute <app> [时长]暂时静音某个应用的推送
/panel获取管理面板一次性登录链接
/help查看全部指令

返回约定

  • /v1/send 返回 { ok, queued } 表示已入队,实际发送经限流队列异步完成
  • 入站 Webhook 返回 202 已入队;403 已停用、404 地址错、503 微信离线可重试
  • 出站消息自动加 【应用名】 前缀,多个应用共用一个微信号也能一眼分清来源

先说清楚

平台边界与限制

这些是个人微信 Bot 协议的硬限制,代码绕不过去。接入前知道,比上线后踩坑好。

  • 只支持 1 对 1 私聊。Bot 身份无法可靠接收普通微信群消息,群消息暂不在路线内。
  • 发送频率约 20-30 条/分。超出的部分由出站队列排队补发,不会直接丢。
  • 单条 4000 字符。超长自动分段按序发送,段间留间隔避免被限。
  • 凭据有效期数天到数周。过期后需要重新扫码一次,面板与微信都会提示。
  • 只发给你自己和与你对话的人。不能给陌生人主动发消息,这是协议限制也是反骚扰设计。
  • 暂不支持:图片 / 文件转发、多个微信号、出站 Webhook 回调、非 Node 语言 SDK。
会话窗口:主动推送必须在微信会话窗口内。窗口由你在微信里发消息打开,静置数小时后关闭; 关闭期间推送会被微信侧拒收,只需你在微信里随便发一条消息即可恢复。接收消息不受影响。

这些都能接受?那就开始

大多数场景(自己收通知、跟 Agent 对话、网站客服)都在边界之内。