boxmoe_header_banner_img

Hello! 欢迎来到梦汐阁!

加载中

文章导读

基于nonebot的QQ官方机器人搭建教程(Python)


avatar
烨汐 2026年4月2日 113

阅读文章前需要先了解的一些事

这里强烈建议使用教程前需要先了解的事情:本教程是针对QQ普通官方机器人,而非龙虾机器人。截住文章发布日期2026年4月2日,平台一贯表态机器人不可接入AIGC服务直到龙虾的出现在压力下平台终于限制允许接入AI,但是!!!接入AI的机器人只能开发者私聊使用,不可加群,最近刚刚推出腾讯频道 Skill 上线,可以在频道使用,本教程不讲解频道相关内容,要知道频道的话我们的机器人还需要分私域和公域,本文章讲解的为群机器人,是QQ官方机器人。在二月份平台推出了龙虾接入入口,本文章使用的并非龙虾,所以不使用 龙虾入口 。温馨提示(个人看法),开发龙虾机器人会被限制很多功能,然而我们开发官方的虽然也限制(QQ平台一直都在限制,例如按钮发送功能)但会比龙虾更自由一些。我们的开发方法其实也能够实现AI功能,但至于合不合规就看作为机器人开发者的你怎么使用了。

然后这里先讲解一下平台对于机器人的限制(包括龙虾机器人),下面列举的是新开发者们希望机器人能干的事,万一你想开发机器人目的是为了这些功能那很遗憾告诉不行,否则机器人面临封禁风险或者无法使用,以下限制是截住与本文章发布日期2026年4月2日,若之后平台修改了一些限制或开放一些权限不属于本文章的描述错误。文章是具有时效性的,和新闻一样,虽然文章也可以更新但很难解决时效性问题,可以加入群聊416136987 (梦汐阁官方群聊,这里什么都聊,也有文件分享)或者710101225(nonebot三叶草机器人群聊)交流获取最新官方动态。

一是我们的机器人没有主动消息权限。就是说我们的机器人无法做到主动发送消息给对方,所以机器人无法做到定时发消息、通知等之类的功能。(这里官方出了个私聊召回功能,可以做的机器人每个月主动发几条消息的之前使用过机器人的人,不过这里不再声明,因为不好用而且对于新手和新机器人来说更无用,所以可无视本括号的内容,仅了解即可)

二是我们的群机器人只能获取被艾特的消息或者私聊机器人的消息,也就是说在群里只有人艾特机器人使用我们的机器人才收到官方返回的消息。所以说你是想让机器人来管理群友们的聊天或者对群友们之间的聊天作出反应是不行的。而且平台也没有给予机器人禁言等功能的接口。

三是我们的群机器人不可接入AIGC服务,什么是AIGC,简单来说就是AI生成的内容,包括AI对话聊天、AI画图等等。不过在今年二月官方运行机器人在沙盒环境下私聊使用,对于新手来说简单理解就是只能你自己私聊用,不能加群。否则接入AI的机器人将面临封禁处理(不可解封,也没有解封入口)。(呜呜呜,还记得我之前写的小汐机器人吗,其实就是因为AI的原因被下架了,那时候9月份新官上任第二天直接处理了,连反应时间都没有 😭 )

 

好的,文章正片就要开始啦,既然你要部署一个机器人,你之后的目光请将自己视为开发者而不是用户,作为开发者的视角来设计自己的机器人,要想作为用户的别人要怎么使用你的机器人。最近平台一直在调整中,变化较大,上述限制或许在不久就会开放。

QQ开放平台

首先QQ官方机器人需要先在QQ开放平台 注册账号,可以使用企业为主体(前提是你是企业)也可以是个人为主体,需要实名认证,个人主体最多只能存在5个机器人(如果有机器人被封禁也占位置),企业是10个。选择机器人选项卡,然后点击下面的蓝色创建QQ机器人按钮,不要点击上面的QQ- BOT快速接入Openclaw入口,然后按照你的想法设置名称、头像、描述等信息。

创建好机器人后,点击你的机器人进入机器人管理页,点击开发管理

在这一页中需要将ID、Token、AppSecret的值保存下来,之后我们会有用,这是连接到机器人的关键。然后还是在这个页面,下方有个IP白名单,我们先用要部署机器人的电脑打开百度搜索“IP查询”,然后将“本机IP”的ip复制下来

然后回到机器人管理端在IP白名单页面点击右边的编辑,然后将复制下来的IP复制填入然后点击保存,这时候显示需要扫码验证本人,使用注册该主体的管理员QQ扫码验证即可保存。

nonebot源码

这里我将汐宝机器人的源码提供出来,建议萌新们直接使用汐宝框架源码来部署,源码已经将汐宝原来的功能全部删除只保留一个回复响应用于测试。请先下载汐宝框架源码到需要部署的电脑上并解压出来,汐宝框架源码保存在梦汐阁官方群聊群文件中。也可下载三叶草机器人的源码,三叶草机器人源码则是保留三叶草的功能,三叶草源码可以访问github镜像https://repo.cloverta.top/cloverta/SanYeCao-Nonebot获取。

下载安装python(或者蟒蛇Anaconda)

首先访问官网,可根据电脑系统来选择下载,我下面演示的系统为Windows Server 2016。强烈建议下载python3.11或者3.12,不要下载3.13及以上版本。

访问官网下载https://www.python.org/downloads/windows/

然后点开安装,将下面两个给勾上,然后选择立即安装或自定义安装(由于我服务器这里这有C盘,所以我安装在C盘,你也可以选择安装在D盘)

自定义安装至少要保证默认勾上的勾上,然后你再根据自己的需求选择勾上其他选项,例如给电脑所有用户都安装的选项。最后安装完成之后会出现个禁用路径长度限制的选项,建议点击选择,然后就可以关闭安装程序了。

nonebot连接官方机器人

首先打开源代码根目录的.env.prod文件将其中的“id”、“token”和“secret”的值替换为之前开放平台机器人的值。然后按win+r输入cmd打开cmd窗口,然后在cmd窗口输入cd+自己源代码的位置,例如我代码放在C盘上,文件夹叫汐宝bot,那么我输入cd C:\汐宝bot这里注意cd后面有个空格。然后我们先将 pip 升级到最新的版本后进行更换镜像源,永久设置为清华大学的镜像源
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
然后升级一下pip
python -m pip install --upgrade pip
然后我们要安装 pipx,输入
python -m pip install --user pipx
python -m pipx ensurepath

然后关闭这个cmd终端重新打开新cmd终端(这是为了使PATH更改生效),再打开项目根目录cd C:\汐宝bot安装

pipx install nb-cli==1.7.3 --force
然后安装所需的依赖,这一步所需时间较长,请耐心等待
pip install -r requirements.txt

接下来为了顺利运行,我们把常用的驱动器等东西都装一下

pip install nonebot2[fastapi] nonebot-adapter-qq nonebot-adapter-onebot apscheduler httpx pydantic nonebot-plugin-htmlrender aiofiles pillow psutil openai tortoise-orm requests aiohtt

然后执行

nb run

这时候一般会弹窗出现缺包缺库问题,毕竟我也很难保证你电脑有什么包和库,所以接下来是缺什么就装什么,例如当执行nb run出现下面的情况

就是缺spdcheduler 库的意思(看最后那个引号),这时候就执行pip install APScheduler就可以安装这个库,以此类推,缺什么就装什么,缺什么就pip install一下。

接下来再次执行nb run一般就可以运行啦,注意第一次运行可能耗时比较久,请耐心等待。直到出现你的机器人名字就已经连接成功了!

编辑器(可选)和功能开发

本文章的目的是基于nonebot部署QQ官方机器人,以上已经达成了。但是部署成功或就如文章开头说的,接下来你要作为开发者的角度去思考问题,接下来你需要自己给自己的机器人设计功能,会用到编辑器,本项目使用的是python,推荐使用PyCharm或者Visual Studio Code都可以。若你需要添加功能,就需要写python代码插件,你可以在项目你的项目名称(例如汐宝bot)\src\plugins文件夹下添加py文件即可。

这里需要讲一下,为什么编辑器可选,因为部署并不需要编辑器,也就是没有编辑器依然可以让项目运行。例如你有两台电脑,一台是主要用的,另一台用来挂机,就像我现在部署的这样,挂机的这一台并不需要编辑器。

一些开发例子教程

在开发过程中,你可能会想要发送图片或者视频等等内容,可以参考以下代码,这些代码来源于三叶(1423315181)并进行过修改

接下来讲解发送本地图片:

from pathlib import Path
from nonebot.rule import to_me
from nonebot.plugin import on_command
from nonebot.adapters.qq import MessageSegment

image = on_command("本地图", rule=to_me(), priority=10)

@image.handle()
async def handle_function():
local_image_path = Path("data/test.jpg")

# 检查文件是否存在,防止机器人直接报错崩溃
if local_image_path.exists():
await image.finish(MessageSegment.file_image(local_image_path))
else:
await image.finish(f"找不到图片,请检查路径")

这个代码表示的意思是用户发送指令”本地图”就触发这个插件代码,然后程序从data文件夹里寻找test.jpg这个图片发送,如果找不到这个文件则发送文字消息”找不到图片,请检查路径”

发送网路图片则可以直接将上面这个代码的image.handle函数修改为如下

@image.handle()
async def handle_function():
    url = "yexixi.top/wp-content/themes/lolimeow-lolimeowV13.1/assets/images/logo.png"
    await image.finish(MessageSegment.image(url))

发送视频也是一样的道理

MessageSegment.video(video_url) # 发送网络视频
MessageSegment.file_video(Path("data/video.mp4")) # 发送本地视频

看不懂代码?没关系,贴心的我会建议你可以在开发代码的时候将例子发给AI,然后结合你的需求来制作。

快捷cmd并cd教程

很显然项目只需要CMD终端便可运行,但是每次都WIN+R运行CMD然后cd多麻烦呀是吧。所以这里分享一个快速启动的方法。直接打开C:\Windows\system32\文件夹,然后定位到cmd.exe(当然除了CMD,你有更喜欢的终端也是可以的),右键cmd.exe然后点击创建快捷方式,然后将新创建的快捷方式右键剪切,在桌面右键粘贴。然后可以给桌面的这个快捷方式重命名你喜欢的名字,例如汐宝bot,这个名字不影响项目,仅作为一个图标的名字而已,便于你了解。然后右键这个快捷方式图标点击属性,将起始位置那一行改成项目根目录位置。这样每次双击这个快捷方式自动打开cmd还自己cd到项目位置了呢,接下来就只需执行nb run即可了,多方便呀。

最后

看到这,欢迎来群里交流哦。

另外要是文章有什么地方出错了也欢迎踢一下我修改哦,手码不易。

高速下载源码

高速快速下载梦汐阁普通会员用户可查看和免费下载。你也可通过进群文件直接获取资源。

资源下载此资源仅限VIP下载,请先
客服QQ3151683496 交流群416136987


评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码
已成功复制,转载请标明出处哦