之前有提过,完成了打卡脚本之后,打算做一个Bot方便在QQ上直接接收消息。果然,做懒人才是第一生产力😴

只要接触过二次元应该都对QQbot有一定的了解,比如FF14玩家群里常用的獭獭就包含多种功能(重点是可爱x)。目前而言,Mirai是比较常用的框架,我打算用这个实现。

生态(?)概览

要开始基于已有的SDK做二次开发,我们需要先在本地把环境配好。不过比起create-react-appvue-cli,mirai的配置稍微麻烦一点,并且套娃层数略多,所以整理一下。

如果把社区SDK也包含在内,那么mirai可以被分为3个部分:

  1. mirai:最核心的功能包含在内,它提供的接口会被mirai-console使用。
  2. mirai-console:官方提供的一层封装,便于开发者调用。对于大部分SDK,我们会用到其中的mirai-api-http插件来进行交互。
  3. 社区SDK:社区开发者在mirai-console上再做一层封装,提供API供开发者直接使用,例如消息发送、@群友等操作。

理论上,有了mirai-http-api提供的接口,就可以直接实现我们想要的功能了。不过我为了偷懒,使用了mirai-ts

环境配置

Java环境

别骂了,平时真没做过Java开发,根本没有环境

对于Mac环境,我选择的是OpenJDK。

1
2
brew install openjdk@11
echo 'export PATH="/opt/homebrew/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc # 设为默认路径

记得设为默认路径,否则which javawhich javac就不会选择openjdk。

mirai安装

由于mirai层层套娃的特质,安装起来略微麻烦,因此我选择使用mirai-console-loader一步到胃。

  1. release页下载最新的zip文件并解压。
  2. sh mcl运行脚本,此时mcl会帮我们把必需的插件全部安装好,并顺利运行。

启动日志

此时默认的监听位置是8080端口,curl一下来确认可以正确收到消息。

1
2
curl localhost:8080/about
# {"code":0,"msg":"","data":{"version":"2.3.3"}}

到这里,前期工作就全部做完了。接下来就是利用SDK,和我的打卡脚本做通信🚌