运行原理
Nonebot 的运作原理其实很简单,机器人功能由 Nonebot 运作,它提供接入自定义插件的平台,那么 cqhttp 则扮演了一个 Nonebot 与 QQ 交流的桥梁,负责将消息从QQ取回传递给 Nonebot,Nonebot 处理将反馈交还给 cqhttp,cqhttp 传递至QQ实现功能。
其实这里的无头客户端还有很多其它的工具,这里介绍的是 cqhttp(个人喜欢 golang,特点是轻量到处能跑)
要求环境
Debian / Ubuntu Python >= 3.7
配置 go-cqhttp
# 下载 latest release go-cqhttp
wget -c "https://github.com/Mrs4s/go-cqhttp/releases/download/latest/go-cqhttp_linux_amd64.tar.gz"
tar -xzvf go-cqhttp_linux_amd64.tar.gz -C go_cqhttp; rm go-cqhttp_linux_amd64.tar.gz; cd go_cqhttp
# 运行 go_cqhttp,令其生成默认配置文件
./go_cqhttp
# 这里只配置了 WebSocket 正向和 WebSocket 反向
config.yml
反向 WebSocket 连接
account:
uin: 机器人QQ号
password: "机器人密码"
message:
post-format: array
servers:
- ws-reverse:
universal: ws://127.0.0.1:8080/cqhttp/ws
反向 WebSocket 连接
account:
uin: 机器人QQ号
password: "机器人密码"
message:
post-format: array
servers:
- ws:
host: 127.0.0.1
port: 6700
配置完成,快速启动 go-cqhttp
# 跳过启动前5秒
./go-cqhttp faststart
配置 Nonebot
cd ~
# 通过脚手架安装, nonebot2 会被作为依赖安装
pip install nb-cli
# 创建一个空项目
nb create
# 新建项目 bot,选择 cqhttp 作为适配器。完成后会在当前目录生成一个 /bot 项目目录
cd /bot
# 编辑 `bot.py`,末尾添加一行
CQHTTP_WS_URLS={"修改为机器人QQ号": "ws://127.0.0.1:6700/"}
# 运行 bot
nb run
/echo Hello world!
简述 Nonebot 插件安装
nb plugin listnb plugin install 插件
requirement.txtpip install i-r requirement.txt