微信机器人怎么自动回复?Webhook + HTTP 双通道闭环实现
·
新手以为"自动回复"是平台自带的一个开关,其实不是——WTAPI 提供的是通道,回复逻辑长在你自己的服务里。理解这一点,问题就变成两段:怎么收到消息(Webhook)、怎么把回复发出去(HTTP)。本文把这条闭环的每个环节讲清,并给出四种回复模式。
一、闭环只有三步,但每步都有讲究
① 用户发消息
↓ WTAPI 通过 Webhook 实时推送 JSON 事件
② 你的服务接收 → 跑回复逻辑(关键词/AI/事件)
↓ 调 HTTP API
③ WTAPI 驱动官方微信客户端,把回复发出去
这就是文档"双通道通信:HTTP 主动调用 + Webhook 实时回调,闭环自动化"的标准形态。
二、第一步:Webhook 把消息"收进来"
在控制台填一个公网可达的回调 URL,平台在消息发生时向它 POST 数据。任何语言的 Web 框架一个路由就能承接(官方支持 Java / Python / C++ / Go / PHP)。本地调试用内网穿透。
三、第二步:四种回复模式,按业务选
| 模式 | 怎么判定 | 回复内容 |
|---|---|---|
| 关键词回复 | 内容命中关键词表 | 固定话术 / 文件 / 图片 |
| AI 智能回复 | 交给模型生成 | 接 ChatGPT / 文心一言 / 自研 NLP |
| 事件回复 | 好友通过、入群等事件触发 | 欢迎语、群规(不是回复某条消息) |
| 转人工 | 命中"人工"或 AI 无把握 | 提示语 + 通知客服坐席 |
四、第三步:HTTP 把回复"发出去"
回复目标怎么取?直接用收到事件里带来的标识:群消息回群(chatroomId),私聊回个人(fromWxId),不要手写硬编码。
from flask import Flask, request, jsonify
import requests, queue, threading
app = Flask(__name__)
q = queue.Queue()
@app.route("/webhook", methods=["POST"])
def webhook():
q.put(request.json) # 回调只收事件,立即响应
return jsonify({"code": 1000})
def worker():
while True:
ev = q.get()
content = ev.get("content", "")
target = ev.get("chatroomId") or ev.get("fromWxId") # 群/私聊自适应
if not target:
continue
if "人工" in content:
reply = "正在为您转接人工客服"
elif "价格" in content:
reply = "价目表已发您,请查收文件"
else:
reply = my_nlp(content) # ChatGPT/文心一言/自研NLP
send(target, reply)
def send(target, text):
r = requests.post(
"https://wx.chuapi.com/finder/v2/api/发送路径以文档为准",
headers={"X-finder-TOKEN": "你的Token",
"Authorization": "Bearer 你的凭证",
"Content-Type": "application/json"},
json={"appId": "你的appId", "instanceId": "你的实例ID",
"to": target, "content": text}, timeout=15)
return r.json().get("code") == "1000" # 成功才作数
threading.Thread(target=worker, daemon=True).start()
app.run(port=8080)
回调字段名、发送路径以文档weiti.apifox.cn 为准。
五、让自动回复"好用"的四个细节
- 回调快响应:AI 生成可能要几秒,先返回 1000,结果在 worker 里异步发,避免回调超时
- 多轮上下文:AI 回复按用户标识保存会话历史,对话才连贯
- 失败要补救:发送按
code:"1000"判定,失败记日志、按策略重试 - 回复不止文本:报价场景补文件、营销场景回小程序卡片,六种消息类型按需组合
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)