傻瓜式教程:基于nonebot2创建QQ机器人并部署到本地的方法详解
事前准备:
1、下载gocqhttp机器人框架生成文件
这里放一个博主的分享链接,博主用到的gocqhttp框架生成文件就是链接中的文件。阿里云分享,提取码:x2k6。下载好之后进入下一步。
2、安装VScode代码编辑器
VScode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。对于机器人配置环境和插件的编写都很友好,进入官网下载地址,并选择对应系统的VScode下载并安装。安装完成后进入下一步。
3、配置python环境
该机器人的插件编写基本用python语言完成,因此需要配置python环境,博主使用的python是3.8.3版本的,可以根据自己的需要选择对应版本下载配置,进入python官网下载地址,然后Ctrl+F启动页内搜索,输入自己想要的版本号(例如“3.8.3”),找到对应下载地址下载。
** !!!安装途中一定注意:勾选Add to Path!!! **
** !!!安装途中一定注意:勾选Add to Path!!! **
** !!!安装途中一定注意:勾选Add to Path!!! **
如果你没有勾选Add to Path选项安装,那么需要多一步的操作,首先进入文件浏览器,此电脑右键–>属性–>高级系统设置–>环境变量–>用户变量–>双击Path–>新建–>填入你的python安装目录中python.exe的绝对目录。要是觉得麻烦可以选择卸载重装然后勾选Add to Path选项,VScode中出现对应版本的python解释器就是成功配置了python环境。配置完成后进入下一步。
4、安装nonebot2脚手架
在创建机器人之前,需要先把nonebot2相关的脚手架和需要用到的python库安装好,进入VScode,新建终端,输入以下命令:
1 | pip install nonebot2 # 安装nonebot2 |
至此准备工作基本完成,可以进入下一阶段。
创建机器人:
1、gocqhttp框架搭建
打开gocq文件夹下的go-cqhttp_windows_amd64.exe文件,然后点击三次”确认”生成”go-cqhttp.bat”的Windows批处理文件。
打开刚刚生成的”go-cqhttp.bat”的Windows批处理文件,输入3(选择3:反向Websocket通信)后回车,会提示”默认配置文件已生成,请修改 config.yml 后重新启动!”。
接下来关闭该窗口,用VScode打开刚刚生成的config.yml文件,修改其中的部分配置信息,从上往下看,首先是account中的uin,也就是QQ账号,此处输入你需要用来当作机器人的QQ账号,密码可以不用写,到时候扫码登录。
接下来翻到最下面,反向WS设置中,ws-reverse的universal配置项修改为”ws://127.0.0.1:[port]/onebot/v11/ws/“,其中的port修改为自己想要的端口号,一般10000-60000为宜,最后选用3,4,5开头的端口号。ps:这个端口号要记住,后面要用!!
接下来关闭config.yml,再次打开文件名”go-cqhttp.bat”的Windows批处理文件,提前将窗口最大化(防止生成的二维码看不见),会出现如下界面,扫码登录后显示:”登录失败:密码错误或账号被冻结”,不用担心。
接下来关闭这个窗口,刷新文件夹应该会生成如下文件:
其中,device.json文件是生成的虚拟设备信息,刚才登录失败原因就在于此,用VScode/记事本打开该json文件,Ctrl+F启用页内搜索protocol,修改这一项配置,将这项配置的参数改成2。保存后关闭。
再次启动文件名”go-cqhttp.bat”的Windows批处理文件,按同样流程扫码登录,出现以下界面就表示登录成功了:
ps:cmd界面中会一直出现
1 | 开始尝试连接到反向WebSocket Universal服务器: ws://127.0.0.1:54432/onebot/v11/ws/ |
这是正常现象,因为这只是实现了虚拟设备的登录,并没有连接上本地的端口。
至此gocqhttp框架搭建就算完成了。可以进入下一阶段了。
2、创建bot
打开文件浏览器,在gocq一级文件夹下打开终端(VScode中的终端也一样),输入”nb create”指令
然后输入Project Name,也就是你的机器人叫什么名字,再选择2)In a “src” folder,
然后空格选择echo(这个是它推荐的插件,可以不选择),回车,
然后空格选择Onebot V11,回车。
最后出现以下界面就算成功了,文件夹内会生成以你的机器人的名字命名的文件夹。
3、配置bot
打开VScode,打开文件夹Akarin(也就是你的机器人名字命名的文件夹),首先打开”.env”文件,将其中的ENVIRONMENT参数修改为prod,(不重要,但是与后续相关,dev是开发模式,prod是发布模式,这里的环境修改为什么参数,后面配置环境就修改对应的文件,开发模式就修改.env.dev文件,发布模式就修改.env.prod模式),接下来打开.env.prod文件,将其中的HOST改成127.0.0.1,PORT改成你之前设置的端口号。
除此之外还有几个参数需要设置,这些需要自己添加:
1 | SUPERUSERS=["管理员QQ号1","管理员QQ号2"] # 不是机器人QQ号,是你的QQ号,也就是管理员QQ号,也可以填多个,用逗号隔开 |
填完后如图保存关闭。
接下来打开bot.py文件,新建终端,输入命令nb run,出现以下截图就是成功启动了:
现在再打开文件名”go-cqhttp.bat”的Windows批处理文件,登录完成后截图如下:
现在连接本地端口成功了就不会出现之前的报错了。
这时候VScode终端中会出现
1 | 07-15 11:47:37 [INFO] websockets | connection open |
表示连接成功了,现在打开QQ,用你的QQ号对机器人发生信息触发echo指令,发送”echo xxx”机器人就会回复”xxx”,这样就算是部署成功了!
至此机器人就部署成功啦。
下一篇不知道什么时候写了,准备下一篇写插件的下载启用,以及自己插件的编写。