本文将手把手指导你完成协议端 Napcat 的部署以及借助 Nonebot2 WebUI 进行 NoneBot2 机器人的创建、管理与开发,高效快速地完成 QQ 机器人的搭建及定制化插件开发。
一、组件介绍
NoneBot2 是一个现代、跨平台、可扩展的 Python 异步机器人框架。它本身不直接与聊天软件通信,而是由事件驱动,专注于处理接收到的消息事件,同时采用插件化架构,所有机器人功能都以插件形式运行,通过插件完成消息处理和回复。
NapCat 是一个基于 NTQQ 协议的 OneBot 协议实现框架。它负责与 QQ 进行通信,让机器人账号登录 QQ,实现消息的接收与发送。并将 QQ 内部通信协议标准化为 OneBot v11 协议格式,是连接 QQ 和 NoneBot2 的桥梁。它本身不包含业务逻辑,仅作为消息通道层。
Nonebot2 WebUI 是一个本地网页管理面板,为 NoneBot2 机器人提供一站式管理。不用记命令、不用碰代码,创建机器人、编写插件、查看日志、打开终端、监控服务器,全部在浏览器里以可视化方式完成,极大地方便了 NoneBot2 机器人的管理和开发。
NapCat 与 NoneBot2 的协作方式如下图:
sequenceDiagram
participant User as QQ好友
participant NC as NapCat
participant NB as NoneBot2
participant Plugin as 你的插件
User->>NC: 1. 发送消息
NC->>NC: 2. 转换为标准OneBot格式
NC->>NB: 3. 通过WebSocket上报事件
NB->>Plugin: 4. 分发事件给对应插件
Plugin->>Plugin: 5. 执行逻辑处理
Plugin->>NB: 6. 返回回复内容
NB->>NC: 7. 下发回复指令
NC->>User: 8. 调用QQ接口发送回复
二、准备工作
- Python:3.10+
- python3-venv:
Debian / Ubuntu的 Python 默认不打包 venv(ensurepip)模块,需要先装sudo apt install python3 python3-venv,其他系统用户请忽略本条 - QQ 账号:使用小号,作为机器人账号(因为有一定封号风险)
本文以 Linux 环境进行讲解,Windows/MacOS 环境的部署方式大同小异,如遇问题请查阅文末官方文档
三、安装和部署 NapCat
3.1 安装
3.1.1 Windows 一键安装
- 前往 NapCatQQ 的 Releases 页面 下载
NapCat.Shell.Windows.OneKey.zip无头绿色版本解压 - 点击
NapCatInstaller.exe等待自动化配置 - 进去
NapCat.XXXX.Shell目录 - 启动
napcat.bat
3.1.2 Linux 一键安装命令
curl -o \
napcat.sh \
https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.sh \
&& bash napcat.sh
如果官方源无法下载,可采用以下命令从 Github 拉取:
curl -o \
napcat.sh \
https://raw.githubusercontent.com/NapNeko/NapCat-Installer/main/script/install.sh \
&& bash napcat.sh
3.2 配置
3.2.1 启动 NapCat
Windows 下双击 napcat.bat 启动,随后打开 WebUI;

Linux 下执行 napcat 命令启动,进入 TUI 界面。

3.2.2 登录 QQ 账号
进入菜单的 配置 选项,选择 添加新账号,输入准备好的机器人 QQ 号,提交后添加成功。

然后进入对应 QQ 号的配置页,选择 反向ws 进行配置。

名称任意,Token 自己设置并妥善保管,心跳间隔与重连间隔保留默认即可。
Url 填 ws://127.0.0.1:8080/onebot/v11/ws,这是为了对接我们的 NoneBot2 服务,8080 是 NoneBot2 的默认端口。

消息格式推荐选择 数组。

配置完成后回到菜单页,选择 启动 选项,选择我们的机器人账号进行启动。

之后会生成一个二维码,我们用登录了机器人账号的 QQ 扫码登录。

对应账号状态变为 运行中,即启动成功,NapCat 部分的配置也到此完成!

四、借助 NoneBot2 WebUI 快速完成 NoneBot2 的部署与开发
4.1 安装 NoneBot2 WebUI
项目 Github 地址:NoneBot2 WebUI
4.1.1 Windows(PowerShell)
powershell -ExecutionPolicy Bypass -Command "Invoke-WebRequest -Uri https://raw.githubusercontent.com/HuajiMX/nonebot-webui/main/install.ps1 -OutFile install.ps1; .\install.ps1"
安装完成后,进入 nonebot-webui 文件夹,双击 启动WebUI.bat 打开浏览器 WebUI。
4.1.2 Linux / macOS
curl -fsSL https://raw.githubusercontent.com/HuajiMX/nonebot-webui/main/install.sh -o install.sh && bash install.sh
安装完成后,执行 cd nonebot-webui && ./.venv/bin/python start.py,然后打开浏览器访问 http://127.0.0.1:9527,按提示设置管理员账号,即可开始使用。
若部署在远程服务器,需要本地访问 WebUI,请先放行服务器
9527端口,并在本地访问http://[服务器 IP]:9527。
4.2 启动 WebUI


4.3 机器人管理
通过 WebUI,我们能快速创建一个机器人。

在机器人列表可以清晰地看到机器人的各项信息与运行状态,以及快捷操作。

详情页也能方便快捷地从管理机器人的方方面面。

4.4 可视化插件编写
这是 NoneBot2 WebUI 的亮点功能之一,使我们定制简单功能插件时避免繁琐的代码,通过图形化方式快速搭建逻辑。
WebUI 提供了许多功能丰富的内置组件,也可自己编写自定义 Python 代码,未来我们会继续加入更多组件。

编写完可视化插件后在列表将其装配至机器人。

可以测试插件运行效果或查看机器人运行日志。


五、写在最后
通过 NoneBot2 WebUI,我们能够便捷高效地进行 QQ 机器人的开发和管理。对于使用中遇到的问题或建议,欢迎提交 Issues。
Comments NOTHING