微信机器人最常见的需求就一个:对方发消息 → 系统自动回。

很多自动回复做失败,不是规则没写好,是回调根本没接到,或接到了超时被丢弃。

先说结论

原理就两段:Webhook 把消息推到你的服务器,你判断完再调发送接口回过去。

用户发消息
    ↓
Webhook 推到你的服务器
    ↓
你的逻辑判断(关键词 / AI / 工单)
    ↓
调用发送接口回复

没有回调,就只能主动发,不能当机器人。回调必须 3 秒内响应。

最小闭环

  1. 后台「访问控制」填回调地址(必须公网可访问)
  2. 系统会先发一条验证请求,确认地址可用
  3. 之后每条好友 / 群消息都会 POST 过来
  4. 解析内容,再调发送接口回过去

GeWe API 把消息回调和发送接口都提供了。字段和回调结构对照这里配:API 文档

import requests

API = "http://api.geweapi.com/gewe/v2/api/message/postText"
HEADERS = {
    "X-GEWE-TOKEN": "YOUR_TOKEN",
    "Content-Type": "application/json",
}

def on_message(event):
    # 先尽快 return,避免超过 3 秒
    text = event.get("content", "")
    from_wxid = event.get("fromWxid") or event.get("toWxid")
    if "价格" not in text:
        return {"ok": True}

    r = requests.post(
        API,
        headers=HEADERS,
        json={
            "appId": "你的appId",
            "toWxid": from_wxid,
            "content": "报价见说明,如需人工请回复「转人工」。",
        },
        timeout=10,
    )
    return r.json()

群里回复时,toWxid 填群 ID(xxxx@chatroom),不要回成私聊,除非你确实想私聊跟进。

联调验收

  • 回调必须 3 秒内响应,超时会被丢弃;处理逻辑可以先入队再慢慢回
  • 你通过接口发出去的消息,不会再回调给你,避免死循环
  • 手机端自己发的消息会回调(多端同步)
  • 内网穿透只适合临时测试,正式环境用公网地址
  • 发出去之后,对方会话里能看到回复,且发送接口 ret == 200

再扩一步

关键词回复稳了,再接大模型或 Dify / n8n。先稳定回复,再加功能。平台入口:GeWe API 官网

总结

微信机器人自动回复,先把「收到 → 回复」跑通。Webhook 通、发送接口通,再上 AI。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐