源起

QQ机器人,嘛,最早接触到这个东西是在公主连结的游戏群里,正经的机器人是为了提供排刀报刀等会战相关服务,但是似乎群友们总是更喜欢色图功能(

云游君的群里有一个可爱的机器人小云,她会贴心地回应群友的关键词、自动转发云游的博客、自动盗群友的图转发到所有群等可惜没有色图功能

寒假,在家,百无聊赖!而且觉得我已经大三了,应该做点有趣的事情,我定下了如下目标:

  • 拥有自己的机器人
  • 拥有自己的网站
  • 把自己的机器人挂到一个云服务器上

这三件事情我想做很久了,本来其实做网站是最简单的,但是由于我是第一次购买域名,我的实名信息刚提交上去还在审核,所以就先试着做机器人吧!

这是我的第一篇博客,而且在可预见的未来不会有很多人看到,所以这篇博文主要是记录自己的心路历程,行文会比较啰嗦大部分内容在自嗨

开始行动!

既然是云游的机器人引发了我的热情,那么当然要继续薅羊毛,所以我在云游的网站上找到了两篇与机器人有关的博客:

嗯。。。第二篇看起来似乎开箱即用。。。

进去看看!

mirai

mirai 是一个在全平台下运行,提供 QQ Android 协议支持的高效率机器人库

这个项目的名字来源于

京都动画作品《境界的彼方》的栗山未来(Kuriyama mirai)

CRYPTON以初音未来为代表的创作与活动(Magical mirai)

图标以及形象由画师DazeCake绘制

以上内容摘自mirai的GitHub README部分。

要使用云游的机器人,我们首先需要安装mirai。

mcl

mcl,mirai-console-loader,顾名思义,能够帮你load mirai-console,而mirai-console就是方便我们使用mirai框架的工具。

然而按照网上的教程安装mcl却不成功,于是我去了mcl的GitHub页面,又找到了一个mcl-installer工具。

如果读者希望通过手动方式启动mcl,那么在本文的el-bot大标题下有相关内容可供参考。

真是一环套一环啊~

mcl installer

mcl-installer需要rust环境和调用cargo,绝绝子,继续装rust环境。

安装 Rust

网上教程很多,这里不再添足。

好,rust环境配好了,查看一下:

2.png

接下来,按照官方文档的提示,使用mcl-installer一键启动mcl:

$ git clone https://github.com/iTXTech/mcl-installer.git
$ cd mcl-installer
# native-tls => 使用系统的 OpenSSL,rustls => 使用 rustls。
# --release 用于构建优化过的二进制文件,如需要进行调试请去除该参数。
$ cargo build --features native-tls --release
$ cd target/release
$ strip mcl-installer # strip 可减小可执行文件大小
$ upx --best --lzma mcl-installer # 使用 upx 压缩可进一步缩小可执行文件大小

其实在进行到

cargo build –features native-tls –release

这一步就可以了。此时在文件夹下产生了一个mcl可执行文件,使用./mcl命令运行:

3.png

mcl启动成功。怎么感觉一键安装一点都不快捷

登录QQ

在启动了mcl的窗口,运行login 账号 密码

5.png

报错并弹出如下提示框。

4.png

我的QQ开了设备锁,要验证一下。

好,登录成功,验证一下。

6.png

7.png

向bot发送消息,bot接收到。

el-bot

终于结束了mirai的安装与配置,可以使用el-bot啦!

这里出了点小状况,由于在安装mcl时,手动安装使用mcl-installer安装后的文件夹会不同,而云游的配置文件中默认采用手动安装的目录情况,所以为了后续更好地使用云游的项目,我采用手动安装的方式,重新安装并启动了mcl,而本次登录环节出了点小问题,需要使用滑块验证。我采用的解决方法及其具体过程为:

  • 登录过程中mcl会弹出一个url和一个ticket输入框
  • 在手机上使用滑动验证助手,填入url并验证后,滑动验证助手会返回一个ticket
  • 将ticket粘贴回mcl弹出的输入框中,并关闭弹窗

克隆el-bot

git clone https://github.com/ElpsyCN/el-bot-template your-el-bot

cd your-el-bot
#这里的your-el-bot就是用来放置项目的文件夹

安装依赖

npm install

启动mirai

把前面的mcl启动器文件夹复制到your-el-bot文件夹下,并启动mirai。

配置

配置mirai-api-http

下载mirai-api-http Releasesjar包,放置在your-el-bot/mcl/plugins文件夹中

配置文件:mcl/config/net.mamoe.mirai-api-http/setting.yml

cors:
- "*"
host: 0.0.0.0
port: 4859
authKey: el-psy-congroo
enableWebsocket: true
#云游建议修改authKey,虽然我并不明白他的意思

配置bot

// el/index.js
module.exports = {
// 你登录的 QQ 号
qq: 12345679,
};

此外,在package.json中,mcl.folder字段默认值为mcl,即我的mirai启动器文件夹,这也是我在el-bot小节中提到的重新安装启动mcl的原因。

启动bot

一直在报错如下:

1.jpg

百思不得其解,我搜了各种问题,试了各种方法,最后去群里问云游,源赖氏这个项目自己有问题。

于是云游连夜升级了项目。

8.png

五点半还在commit项目,感谢云游强大的肝脏。

好,重新开始!

略过前述步骤,再次来到启动bot环节,启动:

依然启动失败。


放弃

经过一整天的失败,我决定放弃使用云游的el-bot,转向别的mirai机器人,我也将另起一篇博客,重新讲述我与我的QQ机器人的故事。