企业微信二次开发:精准实现关键词自动回复

文档里的设置回调接口只登记一个 URL:之后该 Token 下设备收到的消息,会 POST 到这个地址。关键词自动回复不是回调接口的参数,是你在自己的服务里:先收下事件,再决定是否调用 /msg/sendText。

回调接口形态:

  • 方法:/client/setCallback

  • callbackUrl:公网可访问地址

  • authType:文档示例为 Authorization

  • authSecret:你自己定的密钥

配成功后没有「关键词」字段可填。规则表在你这边。

复制代码
{
  "method": "/client/setCallback",
  "params": {
    "callbackUrl": "https://你的域名/wecom/webhook",
    "authType": "Authorization",
    "authSecret": "自行保管的密钥"
  }
}

(正文里这是请求体示例,不是对外推广链接。)

功能怎么接在回调后面

  1. 平台 POST 事件到 callbackUrl

  2. 校验 authSecret,读出 guid、群 ID、发送人、文本

  3. 3 秒内返回 HTTP 200,事件写入队列;超时按丢弃

  4. Worker 用关键词表匹配

  5. 命中则用事件里的同一个 guid,toId 用群 roomId,调 /msg/sendText

    {
    "method": "/msg/sendText",
    "params": {
    "guid": "回调里的设备ID",
    "toId": "回调里的群roomId",
    "content": "发「报价」获取价目,发「工单」加单号查询进度。",
    "isNoNeedRead": true
    }
    }

事件里的 cmd、msgType、群 ID 字段名以回调结构说明为准,不要按猜测解析。接口自己发出去的消息不会再进回调,所以关键词匹配的是客户或手机端人工发的内容,不是机器人刚回的那句。

关键词表怎么设计才不像误触发

先做精确词或前缀,例如:报价、工单、发票、人工。不要一上来上正则扫整句。

同一条事件只回一条。优先级写死:人工 > 工单 > 报价。匹配不到就沉默,不要每条群聊都回「未识别」。

去重键用回调里的消息唯一标识;没有该字段时用 guid + 群ID + 发送人 + 时间戳 + 正文哈希。同一 JSON 被 POST 三次,群里只许出现一次回复。

多设备共用一个回调 URL 时,禁止写死某个 guid。谁收到的事件,谁负责回。同一群进了两个托管号,会有两路事件,必须用「该群主责 guid」过滤,否则客户会看到两个头像同时答。

回调侧必须遵守的约束

  • URL 要公网可达;本机 localhost 配不上

  • 先读完 Body 再 200,再入队,避免框架先结束请求导致 Body 丢失

  • 鉴权失败打日志;不要在回调线程里查库、调模型、调发送

  • 配置后会有一条校验请求,用来确认地址活着,不要把它当群消息去做关键词回复

登录不在线、areaCode 和省份不一致,是设备问题,关键词表再完整也发不出去。回复失败按发送接口的 code、isSendSuccess 记日志,不要在回调里重试发送。

上线时怎么验

配好回调后,在测试外部群分别发 报价、随便聊聊、连续三条 报价。预期:第一类有一条固定回复,第二类无回复,第三类三条事件对应三次业务回复且没有因重试变成六次。把校验用的那次 POST 从关键词逻辑里排除。改主责 guid 后再测,确认回消息的是新设备而不是旧号。

这个功能停在「指定词 → 指定句」。意图识别、知识库、转人工工单都是 Worker 里后续分支,不是 /client/setCallback 的参数扩展。

相关推荐
极限挑战哥1 小时前
共享电单车联营平台分账架构实践:二清合规与自动分账零人工方案
java·大数据·人工智能·微信小程序·架构·微信公众平台
吴凡wudianmei2 小时前
从 0 搭一个 AI Agent(三):SSE 流式输出,让 AI 边想边说
架构·llm·openai
各类产品分享14 小时前
工业级 AR 巡检系统选型:核心参数与架构实现要点
架构·ar·ar巡检
AlanAshley5 小时前
实时湖仓与区块链:数据架构的信任革命
架构·区块链
装不满的克莱因瓶6 小时前
支付订单成功异步MQ权益发放设计和开发
java·架构·系统架构·rabbitmq·硬件架构
超级新零售8 小时前
服装订货会数字化:商品版本、订单状态与后续配发数据如何衔接?
大数据·小程序·企业微信
七牛云行业应用8 小时前
DeepSeek 开源 Super-agent 是什么:双层架构、主动找活的 Agent 原型怎么部署(2026 年 11 月)
架构·开源
QianhangQianping8 小时前
WebSocket实时推送+ HTTP 定时轮询:一块大屏两套取数怎么不打架
前端·websocket·网络协议·http·低代码·架构·数据可视化
涛声依旧-底层原理研究所8 小时前
AI Agent 运行逻辑深度解析:从感知层到工具调用,再到真实产物
人工智能·架构
freejackman9 小时前
【架构篇】双遍历 + 多栈协同:手撸 SQL 血缘引擎的架构思考
java·大数据·数据库·hive·sql·架构·spark