你也许已经有了一个「看起来还挺像样」的 AI 小助手服务,比如拥有 HTTP 接口 /v1/chat,能识别不同 Skill(待办、日报、FAQ 等),甚至已经有网页版前端。但现实是:同事们每天真正打开的是企业微信,很少会专门去打开一个新网页跟机器人聊天。
这篇文章就做一件很实用的小事:在不动你现有 AI 服务核心逻辑的前提下,用一个企业微信'回调接口',把它变成「群聊里的 @ 机器人」。
一、整体思路:后端不重写,只加一层「翻译器」
假设你现在的 AI 服务长这样:
- 接口:
POST /v1/chat - 返回:
{ "answer": "上午开会,下午写代码……", "skill": "daily_plan", "duration_ms": 1234 } - 请求体:
{ "question": "今天帮我规划下工作", "session_id": "xxx", "user_id": "u_123", "user_level": "normal" }
我们要做的只是:
- 在企业微信后台配置一个消息回调 URL(比如
/wechat/callback); - 在后端写一个超薄适配层:
- 收到企业微信推来的加密 XML;
- 解密 → 提取出「用户 ID + 文本内容」;
- 把「文本内容」转成
question,连同user_id一起转发给/v1/chat; - 拿到
answer,再按照企业微信要求的格式加密返回。
可以简单理解为:企业微信提供 UI 和消息推送,你的 AI 小助手负责'想答案',中间这个回调接口负责「翻译 + 转发 + 回填」。
二、企业微信端:你必须准备的 3 个关键参数
在写代码前,先在企业微信后台把几个关键信息准备好。
2.1 创建自建应用 / 机器人
- 管理员登录企业微信后台;
- 进入【应用管理】→【自建】→【创建应用】;
- 按提示填写名称、图标即可。
创建完成后,记下:
- CorpID(企业 ID)
- AgentID(应用 ID)
- Secret(应用密钥)
其中 CorpID 稍后会和 Token、EncodingAESKey 一起用于解密;Secret 一般用于你「主动调用企业微信接口」,本篇只做回调,不用到。
2.2 配置消息回调
在刚刚创建的自建应用里,找到「接收消息」或「回调配置」模块,配置三项:
- URL:你后端可公网访问的地址,比如
https://your-domain.com/wechat/callback - Token:自己随便写一个,比如
my_wechat_token_2024 - EncodingAESKey:企业微信自动生成的一串 43 位字符串
这三项记下来,对应到代码里的环境变量:
| 环境变量名 | 对应企业微信配置 |
|---|---|
WECHAT_TOKEN | Token |
WECHAT_ENCODING_AES_KEY | EncodingAESKey |
WECHAT_CORP_ID | 企业 CorpID |

