一、简介
在自己搭建几次QQ机器人后决定写一篇目前最新的教程,因为以前看过时的教程浪费了很多时间。本教程可以让你零基础学会如何搭建自己的机器人,但是要想进行更深的开发建议去阅读官方文档,本教程主要面向一些对QQ机器人感兴趣但又不想学习复杂框架和一次性使用的人。
二、基础准备阶段
首先你需要有一台服务器建议使用centos7系统,然后了解一些linux的基础命令,当然跟着下面的教程直接用也行,建议最好还是先学一下基础命令。本教程是基于nonebot2(nb-cli)和go-cqhttp搭建的,后面教程所用的远程连接工具就不介绍了。接下来就直接上教程了。
三、详细教程
第一步:
在进入Linux系统后要先检查系统的python版本,使用whiereis python和whereis python3这两个命令可以查看当前系统所安装的python的位置和版本,如果版本小于3.8建议进行升级,这里建议使用3.10以上的版本。具体升级教程参考我的另一篇文章:http://t.csdnimg.cn/nbnkC 。
第二步:
下载安装和配置go-cqhttp,先在服务器上创建一个名为gocq的文件夹用来存放安装包,文件夹创建命令:
mkdir gocq
也可以直接通过ftp软件创建。
下载方式(注意要下载对应的Linux版本): 1.通过GitHub地址:https://github.com/Mrs4s/go-cqhttp/releases/tag/v1.1.0 下载发行版,本项目使用的时1.1.0版本,下载完后通过ftp软件上传到gocq文件夹。
2. 用命令cd gocq到gocq文件夹然后使用wget命令直接下载到文件夹:wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.1.0/go-cqhttp_linux_amd64.tar.gz
下载完成后文件夹状态:
然后进行解压缩:
tar -zxvf go-cqhttp_linux_amd64.tar.gz
解压后会出现一个名叫go-cqhttp的二进制文件,使用chmod +x go-cqhttp赋予其运行权限。然后使用命令:./go-cqhttp运行程序,选择第三反向websocket通信:
首次运行会生成下面图片中的几个文件:
然后编辑config.yml内容,在里面填入机器人QQ和密码,滑到最下面找到反向websocket服务器的配置,把universal的值设置成ws://127.0.0.1:8080/onebot/v11/ws ,如下图:
配置完config.yml文件后再次启动会发现需要配置签名服务器,可以先试一下不配置能不能登上,如果不行再进行签名服务器的配置。配置签名服务器可以参考这位大佬的教程:Linux服务器下 签名服务器+Mirai部署 详细教程 - 知乎 (zhihu.com) ,配置完在config.yml文件中加上本地签名服务器的地址。
上面所有都配置完成后再次运行go-cqhttp程序进行登录,选择自动抓取和手动抓取都行,建议选择手动抓取提交,自动抓取有点卡。手动抓取教程:滑块验证码 | go-cqhttp 帮助中心 ,后面建议选择输入手机验证码登录。如果还有其他问题可以去go-cqhttp的GitHub上提交issues。接下来进行最后一步nonebot2框架的安装。
第三步:
首先必须确保安装nonebot2框架前系统python的版本在3.8以上。
安装nonebot2(nb-cli)框架,先使用mkdir q-bot创建一个名叫q-bot的文件夹用来存放机器人框架。
然后在q-bot文件夹中使用venv创建一个虚拟环境,并使用souce加载环境:
python3 --version 查看版本 python3 -m venv venv source venv/bin/activate
进入虚拟环境中如下图前面带有venv:
随后使用pip3安装nonebot2脚手架,并通过nb命令创建bot代码,通过nb run运行bot具体可以参考nonebot2文档:快速上手 | NoneBot
pip3 install nb-cli nb create # 生成bot文件
然后选择simple版
这里注意要选择FastAPI驱动器
下面要选择OneBot V11协议:
下面这些选择完后最后一个选ecoh:
最后cd到q-bot也就是所创建机器人的文件夹:
nb run # 运行机器人
还有一些像.env和.env.dev等机器人配置文件就不过多讲解了,具体配置和插件使用可以参考 手动创建项目 | NoneBot ,本教程只是教你搭建简单的机器人。
如果启动成功会显示像下面图片所示的情况:
然后再QQ上面输入echo命令测试:
四、保留后台进程
这一部分是机器人能自动运行的关键,因为你远程连接时打开的程序在你断开连接后会自动关闭。
本教程将用一种较常用的方法来教你保留后台进程:
使用screen保留进程:
首先需要安装screen,在centos中可以使用下面的命令来安装:
sudo yum install screen
安装完成后运行下面命令进行后台保存:
screen -S bot #创建一个名为bot的运行空间 ctrl A+D #退出运行空间 screen -R bot #再次进入名为bot的运行空间
注意:在bot空间中所运行的程序不会随远程连接的断开而关闭,所以需要注意服务器的运行内存。
如果想用更多的方法可以直接百度一下,这里就不过多赘述了。
以上就是QQ机器人的快速搭建教程了,另外nonebot2的插件生态也很丰富,想玩各种插件的话可以去插件商店 | NoneBot 寻找。如果有不明白的可以在下面留言评论。