This theme is built wit|

园龄:粉丝:关注:

2024年使用nonebot2+go-cqhttp搭建QQ机器人

范例环境:

Linux Ubuntu 18.04.6 LTS
Miniconda python 3.10.9
Java openjdk 11.0.19
unidbg-fetch-qsign v1.1.9
go-cqhttp v1.2.0
nonebot2 v2.1.3

安装配置

先搞一台能够长期运行的服务器,还是建议使用 Linux,本文也是基于 Linux 做讲解

nonebot2 需要 python3.8+ 环境

建议 nonebot2 安装在虚拟环境里面,如果不熟悉怎么构建 python 虚拟环境的话,可以从简单的 conda 上手,参考我之前写的文章:在Linux平台安装使用Anaconda

qsign 需要 Java 环境,如果 qsign 内存总爆,尝试换 jdk11, 别用 openjdk

建议为 bot 创建一个目录,后面的程序都放在目录里

mkdir ~/bot/ && cd ~/bot/

unidbg-fetch-qsign

这是签名服务器程序,用来解决腾讯的风控问题,因为原仓库已经光荣牺牲了,所以资源都是最新版 v1.1.9 的存档

命令参考:gocqhttp-qqsign

Windows用户可以看看这个一键工具:qsign-onekey

unidbg-fetch-qsign创建一个目录

mkdir ~/bot/unidbg-fetch-qsign/ && cd ~/bot/unidbg-fetch-qsign/

下载unidbg-fetch-qsign-shell或者gocqhttp-qqsign分享的:

wget https://github.com/CikeyQi/unidbg-fetch-qsign-shell/releases/download/1.1.9/unidbg-fetch-qsign-1.1.9.zip

或者

wget https://gitee.com/changwenpeng/gocqhttp-qqsign/releases/download/qsign-1.1.9/unidbg-fetch-qsign-1.1.9.zip

解压:

unzip unidbg-fetch-qsign-1.1.9.zip

进入程序运行目录:

cd unidbg-fetch-qsign-1.1.9

在 txlib 找到一个合适的QQ版本,查看配置文件,以 8.9.83 举例:

nano txlib/8.9.83/config.json

默认的ip应该是0.0.0.0,端口8080,key114514,不想改可以不改,但这三个参数要记住,配置 go-cqhttp 的签名服务器的时候要用

写完之后,Ctrl+X退出,y保存,回车

尝试启动:

./bin/unidbg-fetch-qsign --basePath=txlib/8.9.83

没有执行权限的话就chmod +x ./bin/unidbg-fetch-qsign

没有问题的话就Ctrl+C退出,把程序挂到后台运行:

nohup ./bin/unidbg-fetch-qsign --basePath=txlib/8.9.83 > nohup.out 2>&1 &

go-cqhttp

go-cqhttp创建一个目录

mkdir ~/bot/go-cqhttp/ && cd ~/bot/go-cqhttp/

go-cqhttp/releases找到适合你系统的发行版,复制链接

找不到的话记得点一点Show all
img

下面链接替换成你需要的

wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.2.0/go-cqhttp_linux_386.tar.gz

解压

tar -xzf go-cqhttp_linux_386.tar.gz

运行go-cqhttp来生成配置文件:

./go-cqhttp

需要的通信方式选择反向 Websocket 通信,输入3,然后按Ctrl+C退出

编辑配置文件(使用PageUp或PageDown进行翻页):

nano config.yml

填写机器人的账号和密码

img

填写签名服务器字段,也就是unidbg-fetch-qsigntxlib/8.9.83/config.json里面的参数(前面使用默认值的话,那这里也像图里一样写就行)

img

填写反向代理服务器字段(也就是nonebot2的地址,后文会进行配置)

img

写完之后,Ctrl+X退出,y保存,回车

尝试启动:

./go-cqhttp

没有问题的话就Ctrl+C退出,把程序挂到后台运行:

nohup ./go-cqhttp > nohup.out 2>&1 &

nonebot2

现在要进入虚拟环境,如果没有使用虚拟环境,请确保已经卸载可能存在的 NoneBot v1!!!

pip uninstall nonebot

安装脚手架:

pip install nb-cli

创建项目:

nb create

选择bootstrap (初学者或用户),回车

然后给你的 bot 取名,假设我们取的名字是rian

接下来的选项,使用空格选择或取消,选完之后按回车提交

适配器adapter选择Onebot V11,回车

驱动器driver选择FastAPI,回车

后面两个都回答y,回车

内置插件选择echo,回车

进入bot目录:

cd rian

编辑dotenv 配置文件(安装了插件之后,插件的变量也是写到这里):

nano .env.prod

范例:

DRIVER=~fastapi
HOST=127.0.0.1          # 反向代理的ip,对应go-cqhttp的config.yml的反向代理服务器字段
PORT=8181               # 反向代理的端口,对应go-cqhttp的config.yml的反向代理服务器字段
SUPERUSERS=["123123"]   # 超级管理员的QQ号
COMMAND_START=[""]

# 插件的变量写到这里

更多关于dotenv 配置文件的信息,请查阅官方文档的配置

尝试启动:

cd rian
nb run --reload

没有问题的话就Ctrl+C退出,把程序挂到后台运行:

环境变量更新或插件更新需要手动重启,安装新插件会自动重载

nohup nb run --reload  > nohup.out 2>&1 &

使用说明

后台进程管理

unidbg-fetch-qsigngo-cqhttp就放在后台持续运行即可,如果出了什么问题,可以到程序运行的目录下查看nohup生成的运行日志:

cat nohup.out

要杀掉nohup启动的后台进程,要查询进程id:

ps -aux | grep go-cq

如图,1152就是 go-cqhttp 的进程id(unidbg-fetch-qsign名字会比较长,要往上翻翻)

img

杀死进程:kill -9 1152

查看端口占用情况:

lsof -i:8080

安装nonebot2插件

插件商店找到你要的插件,点击卡片右上角的展开

安装命令可以一键复制:

img

一般来说,注意事项和使用方法,以及要配置的环境变量都会写在插件 Github 仓库的 Readme 里面:

img

安装配置完成之后,需要重启nonebot2

更多关于插件的信息,请查阅官方文档的安装插件

go-cqhttp异常

如果 go-cqhttp 无法正常启动,可以参考 go-cqhttp 配置说明的设备信息来修改device.json中的protocol字段,建议使用不常用的设备,比如 iPad 或 aPad,不要造成登录冲突

或者可以参考gocqhttp更换版本协议方法

  1. 项目 unidbg-fetch-qsign-1.1.9/txlib/协议版本 文件夹内有版本协议文件,android_pad.json,android_phone.json
    将这俩文件复制到 go-cqhttp 生成的 data 文件夹下的 versions 文件夹中
    然后改名:android_pad.json需改为gocqhttp对应协议6.json,android_phone.json需改为需改为gocqhttp对应协议1.json
    改完名字后路径为:gocqhttp/data/versions/1.json,gocqhttp/data/versions/6.json
  2. 更改 device.json 文件内 protocol 的参数,放进去的是 1.json 就改为 1 放进去是别的 x.json 就改为 x, 这里的 x 为数字
  3. 启动 qqsign
  4. 如果失败清空 data 目录并重试, versions 文件夹可以保留;
    device.json 需要启动一次 gocqhttp,会自动生成

本文作者:korin5

本文链接:https://www.cnblogs.com/korin5/p/17964333

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   korin5  阅读(2068)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起