1.在linux上部署NapCatQQ
终端运行一下命令一键安装,安装途中选择默认安装配置即可(支持Ubuntu 20+/Debian 10+/Centos9)
curl -o napcat.sh https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.sh && sudo bash napcat.sh
然后前台运行NapCatQQ(可以建立screen会话,避免影响在这一终端的后序操作,screen相关命令在文末)
xvfb-run qq --no-sandbox
扫码登录qq
2.配置ws连接Nonebot
打开 NapCat 的 config 目录,找到名为 onebot11_<你的QQ号>.json 的文件,如 onebot11_1234567.json;如果没有此文件可以复制 onebot11.json 重命名为 onebot11_<你的QQ号>.json
nonebot的反向监听地址默认是 ws://127.0.0.1:8080/onebot/v11/ws
下面是配置内容参数解释:(只需配置 "websocketClients"即可,注意不要把注释复制进去)
{
"network": {
// Http服务器组 可以配置多个 这里演示为一个
"httpServers": [
{
"name": "httpServer",// 名字不能重复 唯一标识
"enable": false,//启用状态
"port": 3000,// 监听端口
"host": "0.0.0.0",// 监听主机
"enableCors": true,// 暂时没有作用
"enableWebsocket": true,// 暂时没有作用
"messagePostFormat": "array",// 消息上报格式 string/array
"token": "",// 鉴权密钥
"debug": false// raw数据上报
}
],
// Http客户端组 可以配置多个 这里演示为一个
"httpClients": [
{
"name": "httpClient",// 名字不能重复 唯一标识
"enable": false,//启用状态
"url": "http://localhost:8080",// 上报地址
"messagePostFormat": "array",// 消息上报格式 string/array
"reportSelfMessage": false,// 是否上报自身消息
"token": "",// 鉴权密钥
"debug": false// raw数据上报
}
],
// WS服务端组/正向WS 可以配置多个 这里演示为一个
"websocketServers": [
{
"name": "WsServer",// 名字不能重复 唯一标识
"enable": false,//启用状态
"host": "0.0.0.0",// 监听主机
"port": 3001,// 监听端口
"messagePostFormat": "array",// 消息上报格式 string/array
"reportSelfMessage": false,// 是否上报自身消息
"token": "",// 鉴权密钥
"enableForcePushEvent": true,// 暂时没有作用
"debug": false,// raw数据上报
"heartInterval": 30000// 心跳周期
}
],
// WS客户端组/反向WS 可以配置多个 这里演示为一个
"websocketClients": [
{
"name": "WsClient",// 名字不能重复 唯一标识
"enable": false,//启用状态
"url": "ws://localhost:8082",// 上报地址
"messagePostFormat": "array",// 消息上报格式 string/array
"reportSelfMessage": false,// 是否上报自身消息
"reconnectInterval": 5000,// 重连间隔
"token": "",// 鉴权密钥
"debug": false,// raw数据上报
"heartInterval": 30000// 心跳周期
}
]
},
"musicSignUrl": "",
"enableLocalFile2Url": false,
"parseMultMsg": false
}
3.安装Nonebot框架并创建机器人
安装nb-cli脚手架
pip install nb-cli
在终端中输入 nb 创建机器人项目,并选择 simple(插件开发者) ,适配器选 Onebot V11,然后一直默认(虚拟环境推荐创建),直到内置插件,选择 echo,然后cd到项目文件夹输入(推荐在screen里执行)
nb run
即可运行机器人
机器人相关插件安装和自定义插件可以查询官方文档https://nonebot.dev/docs/
4.screen命令的相关使用
# 查询screen提示
screen -help
#创建名为name的会话
screen -S name
#列出当前所有screen窗口
screen -ls
#进入指定的screen窗口(可用screen -ls查询)
screen -r [pid/name]
#退出当前screen且不中断其程序的执行
Ctrl+a+d
#退出并清除当前screen
exit
#在主终端中清除指定screen(使用-R/-r/-S均可)
screen -R [pid/Name] -X quit
#screen被占用无法进入处理
screen -D -r [pid/Name]