通过 HTTP 回调接口实现消息实时上行处理
在构建企微私域自动化系统时,**消息回调(Callback)**是实现自动化响应的核心。通过企微API,开发者可以实时接收外部联系人消息、群聊消息、入群/退群事件以及应用菜单点击事件,为 AI 客服、消息审计或流程触发提供底层支持。
能力介绍
-
全量消息接收:支持接收单聊、群聊中的文本、图片、语音、视频、文件及表情包。
-
事件实时触达:包括添加好友成功、删粉/拉黑、进群/退群、修改备注等操作的实时通知。
-
安全性保障:支持对回调数据进行解密验签,确保消息来源可靠,防止重放攻击。
-
高并发处理:接口采用异步推送机制,支持高QPS环境下的业务流转。
10 分钟接入 Demo
-
准备回调地址 :准备一个公网可访问的 HTTP(S) 接口(如
https://api.yourdomain.com/callback)。 -
配置加密密钥 :在企微API后台获取
Token和EncodingAESKey。 -
验证 URL 有效性:在设置页面点击保存,服务器会收到一个 GET 请求,需按规则返回解密后的明文。
-
接收数据:验证通过后,企微将以 POST 形式向该地址推送加密的 XML/JSON 消息包。
API 示例代码 (Node.js 示例)
javascript
// 接收并处理回调消息的逻辑片段
app.post('/callback', async (req, res) => {
const { signature, timestamp, nonce } = req.query;
const encryptedData = req.body; // 企微推送的加密数据
try {
// 1. 验签与解密
const decryptMsg = qiweApi.decrypt(encryptedData, signature, timestamp, nonce);
// 2. 解析逻辑
if (decryptMsg.MsgType === 'text') {
console.log(`收到来自 ${decryptMsg.FromUserName} 的消息: ${decryptMsg.Content}`);
}
// 3. 响应服务器(必须在5秒内返回ok)
res.send("success");
} catch (error) {
res.status(500).send("Decryption Failed");
}
});
使用场景说明
-
AI 智能客服:通过回调获取用户问题,接入 LLM(大模型)后自动回复。
-
私域行为监控:当客户删除员工或退出群聊时,系统自动预警并推送到风控后台。
-
自动化工单:识别聊天中的特定关键词(如"下单"、"售后"),自动在内部系统创建工单。
FAQ
-
Q:回调地址必须是 HTTPS 吗?
- A:建议使用 HTTPS 以保障数据传输安全,但在开发阶段支持 HTTP。
-
Q:收不到回调消息怎么办?
- A:请检查服务器防火墙是否放行、URL 是否能正常访问,并确认 Token/EncodingAESKey 是否与后台配置完全一致。
-
Q:回调数据会丢失吗?
- A:若您的服务器响应超时(超过5秒)或返回错误,企微会在短时间内重试。建议先将消息存入队列,再异步处理。