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]