进阶实战:基于 QiweAPI 构建智能客服机器人(回调与自动化回复)
1. 引言:从被动调用到主动响应
在第一篇教程中,我们学会了如何调用接口“发消息”。但在真实的业务场景中,我们需要程序能“听见”用户的消息并自动回复。这就涉及到了 Webhook(回调机制)。

2. 理解回调机制 (Webhook)
当你的企业微信收到新消息时,QiweAPI 服务器会主动向你预先设定的 URL 发送一个 POST 请求。你的服务器只需要接收这个请求并解析其中的 JSON 数据即可。

3. 环境准备:搭建 Web 服务
我们需要一个公网可访问的服务器(或使用内网穿透工具如 culling/ngrok)。这里我们使用 Flask 框架。
pip install flask4. 核心教程:构建自动化回复逻辑
4.1 编写后端服务
我们要实现一个逻辑:如果用户发送“你好”,机器人自动回复“你好,我是智能助手”;如果用户发送图片,机器人则回复已收到。
from flask import Flask, request, jsonify import requests app = Flask(__name__) # 配置信息 API_BASE = "http://api.qiweapi.com" APP_KEY = "你的AppKey" def reply_message(to_wxid, text): """封装发送消息函数""" requests.post(f"{API_BASE}/message/send_text", json={ "appkey": APP_KEY, "to_wxid": to_wxid, "content": text }) @app.route('/qiwe/callback', methods=['POST']) def callback(): # 1. 接收推送过来的数据 data = request.json if not data: return "No Data", 400 # 2. 解析消息类型 msg_type = data.get("type") msg_content = data.get("data", {}) sender_wxid = msg_content.get("from_wxid") raw_text = msg_content.get("msg", "") # 3. 自动化业务逻辑处理 if msg_type == "event_msg_text": # 文本消息 print(f"收到来自 {sender_wxid} 的消息: {raw_text}") if "价格" in raw_text: reply_message(sender_wxid, "您好,我们的价目表可以访问官网 www.qiweapi.com 查看。") elif "你好" in raw_text: reply_message(sender_wxid, "你好!很高兴为您服务。") elif msg_type == "event_msg_image": # 图片消息 reply_message(sender_wxid, "图片已收到,正在为您转发给相关技术人员。") return jsonify({"status": "ok"}) if __name__ == '__main__': # 运行在 80 端口以便接收公网回调 app.run(host='0.0.0.0', port=80)5. 进阶功能:自动通过好友申请
对于营销号来说,自动加粉是核心需求。QiweAPI 提供了 accept_friend 接口。
if msg_type == "event_friend_verify": # 提取申请参数 v1 = msg_content.get("v1") v2 = msg_content.get("v2") # 调用通过接口 requests.post(f"{API_BASE}/friend/accept", json={ "appkey": APP_KEY, "v1": v1, "v2": v2 }) print("已自动通过新好友申请")6. 项目上线前的核对清单
1. 设置回调地址:在 QiweAPI 控制台 填入你的服务器地址
2. 白名单配置:确保你的服务器 IP 已加入官网后台的白名单(如果开启了该功能)。
3. 日志记录:建议将所有接收到的 JSON 数据记录在日志文件中,方便后续排查消息格式问题。
7. 结语
通过 QiweAPI 与 Flask 的结合,你已经可以构建一个功能完备的企业微信 CRM 系统。从简单的关键词回复到复杂的业务系统对接,API 的高扩展性为企业数字化转型提供了无限可能。
引导入口:
查看 API 文档
