开启QBot

一、 创建Bot工程

接着上一篇文章,我们已经搭建了协议端的 CQHTTP 和工程端的 NoneBot 2 ,现在我们来开启我们的第一个 Bot 项目:

我们进入创建的虚拟环境:

workon venvbot

然后来到我们的虚拟环境 venvbot 所在的根目录:

cd /usr/local/virtualenvs/venvbot

我们用脚手架直接搭建我们的第一个项目:

nb create

二、 配置Bot端口 

创建完成后,我们用 winscp 进入机器人根目录:

刚刚在协议端的 cqhttp 配置时我们知道,在启动前工程端和协议端需要约定好相关的 websocket 通信接口,这样才可以实现监听和机器人的处理。

所以我们需要为刚刚创建的机器人配置相关环境,使其与 cqhttp 建立联系。

我们输入 Ctrl + Alt +H, 查看隐藏文件:

可以看到多出了几个文件,其中前三个都与环境配置有关。第一个表示启动时选用的环境配置文件的后缀,默认为 dev ,意思就是将.env.dev 作为我们默认的环境。

所以我们打开该文件,这里设置的 host 和 port 就是我们工程与 cqhttp 建立联系的通道地址:

我们按需设置后保存(注意这里设置的通道不能够与服务器中在用的本地端口冲突, 具体可以输入 netstat -tnlp 查看)。

然后我们再到 cqhttp 的 hjson 配置文件里填上对应的 ws 接口:

这样我们就完成了配置。

三、 启动 Bot

我们再次回到创建的 Bot 项目根目录,启动机器人:

nb run

莫名出现了加载报错:

具体报错原因显示启动步骤中的环境装载出错:

File "./bot.py", line 8, in <module>
    nonebot.init()
  File "/usr/local/virtualenvs/venvbot/lib/python3.8/site-packages/nonebot/__init__.py", line 175, in init
    env = Env()
  File "/usr/local/virtualenvs/venvbot/lib/python3.8/site-packages/nonebot/config.py", line 38, in __init__
    __pydantic_self__).__init__(**__pydantic_self__._build_values(
  File "/usr/local/virtualenvs/venvbot/lib/python3.8/site-packages/nonebot/config.py", line 53, in _build_values
    return deep_update(self._build_secrets_files(_secrets_dir),
TypeError: 'NoneType' object is not callable

我研究了半天也没摸出头脑,一直以为是协议端出错或者为端口的问题,不认为是 NoneBot 的问题。

直到最终去项目官网查了一下 NoneBot 的 Issue。好吧,原来是个bug:https://github.com/nonebot/nonebot2/issues/256

我们按照 issue 的 解决办法给 pydantic 降级:

pip install pydantic==1.7.3

安装完成后我们再次运行:

这次终于成功启动了!!!然后我们再上线 cqhttp (注意要先到其目录下,再设置后台启动) :

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

 后台启动完成后,我们再次回来启动Bot:

好的,终于Accept 了!这就表示两边已经成功建立联系了,我们来尝试给机器人发个消息:

可以看到右侧倒数第二行成功出现了我们消息的提示。

我们也可以按照官网的方法进行测试,带上/echo 指令获得自动回复:

到这里,机器人就成功搭建完成了。


本文参考资料:

https://v2.nonebot.dev

https://github.com/nonebot/nonebot2/issues/256


如有疑问或错误,欢迎和我私信交流指正。
W.By ChenYX,未经授权,请勿转载!

over~

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Idleman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值