ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

5分钟跑通QQ机器人:QQBot开源框架零基础上手全攻略

2026/8/14 12:52:36 拓冰建站 浏览量
5分钟跑通QQ机器人:QQBot开源框架零基础上手全攻略 5分钟跑通QQ机器人QQBot开源框架零基础上手全攻略【免费下载链接】qqbotQQBot: A conversation robot base on Tencents SmartQQ项目地址: https://gitcode.com/gh_mirrors/qq/qqbot下午三点客服群的小周已经第八次复制粘贴同一个答案了。群里的问题永远是那几个价格、发货、售后。这样的日子相信很多群主、运营和开发者都懂。其实这件事有个更省力的解法写一个QQ机器人把重复回答、定时提醒交给代码你就能从人工客服里解放出来。今天的主角QQBot就是这样一个开源的Python QQ机器人框架它帮你自动收发消息、管理联系人、定时执行任务5分钟就能跑起来。QQBot是什么一句话说清一句话QQBot是一个基于Python和腾讯SmartQQ协议的开源QQ机器人框架。你可以把它想象成一个会编程的QQ管家——它替你登录一个QQ账号然后由代码接管这个账号的所有消息处理。你只需要写几个函数告诉它收到什么话就回什么话每天几点发提醒剩下的事它全包了。下面直接上手先跑起来再讲道理。三步完成QQ机器人快速上手第1步安装QQBot依赖克隆仓库并安装前提是电脑上已有Python2.7或3.4git clone https://gitcode.com/gh_mirrors/qq/qqbot cd qqbot pip install .装好后命令行里就有了qqbot和qq两个命令前者负责启动机器人后者负责操控机器人。第2步启动并扫码登录直接运行qqbot程序会自动弹出二维码图片用手机QQ扫码授权即可。登录成功后登录信息会保存在本地下次启动时用qqbot -q 你的QQ号可以免扫码快速登录有效期约2天。第3步跑通第一个自动回复在~/.qqbot-tmp/plugins/目录下新建mybot.py写入def onQQMessage(bot, contact, member, content): if content -hello: bot.SendTo(contact, 你好我是QQ机器人) # 收到 -hello 就回复这句 elif content -stop: bot.SendTo(contact, QQ机器人已关闭) bot.Stop() # 收到 -stop 就自动下线然后在另一个终端窗口执行qq plug mybot加载插件。现在用另一个QQ给这个账号发-hello就能收到自动回复了。核心能力按真实场景看它能做什么跑通之后你会发现核心玩法就三类回复、定时、查询。分别对应下面的场景。场景一群里的智能客服把常见问题整理成规则24小时在线应答def onQQMessage(bot, contact, member, content): if 价格 in content: bot.SendTo(contact, 现在下单立减20元包邮哦) elif 发货 in content: bot.SendTo(contact, 下单后24小时内发货)这段代码解决的是人肉客服的重复劳动——规则写好后同一个问题问一百遍答案都不带跑偏。场景二定时打卡与提醒用qqbotsched装饰器设定时间到点自动发消息from qqbot import qqbotsched qqbotsched(hour22, minute0) # 每晚22:00触发 def checkin_remind(bot): groups bot.List(group, 学习打卡群) # 先找到目标群 for group in groups: bot.SendTo(group, 打卡时间到回复已打卡完成今日记录)它解决的是总是忘记发提醒的问题会议通知、早安问候、定时巡检都能这么写。场景三群消息监控与远程控制在回调里判断消息来源和内容就能实现被才应答或远程下指令def onQQMessage(bot, contact, member, content): if ME in content: # 群成员机器人时触发 bot.SendTo(contact, member.name 找我什么事) if content -server: bot.SendTo(contact, 服务器运行正常CPU占用 12%)比如服务器状态异常直接在群里发个-server机器人立刻回报情况——这就是最简单的远程控制。运行原理它内部是怎么工作的看上面的架构图QQBot采用的是主线程 子线程的分工模式理解这几点就够了登录阶段主线程依次完成读取配置、加载插件、获取二维码、等待扫码授权消息轮询登录后启动一个子线程持续向服务器轮询新消息收到的消息统一交给onQQMessage处理定时任务另一个子线程负责调度qqbotsched注册的任务到点触发命令端口子线程在 8188 端口监听qq命令和 HTTP API 都走这条路回调驱动所有插件行为都通过onInit、onQQMessage、onInterval等回调函数接入主循环插件之间互不干扰。这套设计的妙处在于你只需要写回调函数完全不用关心网络、线程这些底层细节。进阶技巧插件化与配置管理插件化开发每个功能一个.py文件放到插件目录用qq plug 插件名随时加载、qq unplug 插件名卸载不必重启整个机器人。把问候、提醒、监控拆成独立插件改一处不影响其他。配置管理配置文件位于~/.qqbot-tmp/v2.x.conf支持多用户配置。比如想让机器人掉线后自动重启、每天固定时间重启一次保持在线可以在配置里这样写{ mybot: { qq: 123456789, restartOnOffline: true, plugins: [mybot, qqbot.plugins.schedrestart] } }启动时用qqbot -u mybot加载这组配置。定时重启插件配合自动重启开关能让机器人长期稳定在线。新手最容易踩的几个坑二维码弹不出来Linux下需要系统装了gvfs-open或shotwell。实在不行在配置里开启cmdQrcode用文本模式显示二维码或配置邮箱接收二维码图片。机器人总是掉线SmartQQ协议每1~2天会强制下线这是协议本身的限制。解决办法是开启restartOnOffline并每天固定时间扫码重新登录一次。消息偶尔重复发送这是QQ服务器返回代码1202导致的。可在SendTo时传resendOn1202False关闭重发代价是有时消息发不出去按需取舍。回调函数写太重机器人变卡所有回调都在主线程里顺序执行不要在回调里做耗时操作比如下载大文件单次执行尽量控制在5秒内。想给群成员单独发消息却发不出去协议只允许给好友、群、讨论组发消息不能直接SendTo群成员对象这是设计限制。学习路径从入门到实战入门跑通上面的示例把 sample.py 改着玩理解onQQMessage的参数含义进阶研读 sampleslots.py 了解全部回调函数再用qqbotsched做出你的定时任务实战参考 schedrestart.py 和 plugins-in-dev/ 里的开发中插件模仿它们的结构写出自己的业务插件。下一步动手克隆项目、安装依赖、扫码登录先把自动回复跑通把你最常被问的三个问题写成回复规则加一个定时提醒让机器人替你值班。想深入的话项目根目录的 README.MD 是完整的官方文档faq.md 收集了更多常见问题示例插件在 qqbot/plugins/ 目录下。现在就打开终端让第一个QQ机器人上线吧。【免费下载链接】qqbotQQBot: A conversation robot base on Tencents SmartQQ项目地址: https://gitcode.com/gh_mirrors/qq/qqbot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考