下载地址:https://www.pan38.com/yun/share.php?code=JCnzE 提取密码:6678
该实现包含以下核心功能模块:
消息接收处理:通过Flask搭建HTTP服务接收go-cqhttp推送的QQ消息47
智能回复逻辑:支持关键词匹配回复和默认回复策略38
多场景适配:同时处理私聊和群聊消息19
配置化管理:回复规则可扩展维护510
部署步骤:
下载go-cqhttp对应系统版本并配置config.yml39
安装Python依赖:flask, requests
启动go-cqhttp和Python服务
扫码登录机器人QQ账号
import json
import requests
from flask import Flask, request, jsonify
app = Flask(name)
BOT_URL = "http://127.0.0.1:5700" # go-cqhttp监听地址
关键词回复配置
REPLY_RULES = {
"你好": ["你好呀!", "欢迎光临~"],
"天气": ["今天晴转多云,25-32℃", "记得带伞哦"],
"帮助": ["支持查询:天气/时间/笑话"]
}
@app.route('/', methods=['POST'])
def handle_event():
data = request.json
if data['post_type'] == 'message':
process_message(data)
return jsonify({"status": "ok"})
def process_message(data):
msg_type = data['message_type']
content = data['raw_message']
sender = data['user_id'] if msg_type == 'private' else data['group_id']
# 关键词匹配回复
for keyword in REPLY_RULES:
if keyword in content:
reply = random.choice(REPLY_RULES[keyword])
send_reply(msg_type, sender, reply)
return
# 默认回复
if "?" in content or "?" in content:
send_reply(msg_type, sender, "这个问题我需要查一下哦")
def send_reply(msg_type, target, message):
if msg_type == 'private':
api = f"{BOT_URL}/send_private_msg"
params = {"user_id": target, "message": message}
else:
api = f"{BOT_URL}/send_group_msg"
params = {"group_id": target, "message": message}
requests.get(api, params=params)
if name == 'main':
app.run(host='0.0.0.0', port=8080)
account:
uin: 123456789 # 机器人QQ号
password: "your_password"
encrypt: false
message:
post-format: array
servers:
- http:
host: 127.0.0.1
port: 5700
post:- url: http://127.0.0.1:8080 # Flask服务地址