前言
机器人无处不在:微信有机器人,公众号有、群聊也有,我为此还学了点 Python 写过;QQ 也有机器人🤖,也很常见(微软小冰就是),例如那些淘宝客群里的定时早安晚安语录、淘宝推广链接、世界新闻......就是机器人的功能。
有一天,好友和我说起这件事,能不能写个 QQ 机器人帮他查询游戏战绩。据我所知,酷Q机器人已经没了,晨风机器人的作者坐牢了,情迁机器人的作者出来后也不更新了,所以直接上 Github 搜索 “QQBot”,挑选后决定使用 mamoe/mirai 这个框架。
下载与安装
参考官方用户手册,按照步骤操作,运行 mcl.cmd
启动,成功后会看到 mirai-console started successfully
。
使用
既然是 QQ 机器人,那就需要登录 QQ。
临时登录
临时登录一个账号的命令行格式:/<login|登录> [qq] [password] [protocol]?
参考官方文档,以我的账号为例:在 PowerShell 界面中,输入 /login 2578566236 QQ密码 ANDROID_PHONE
输入后,第一次登录会要求在手机打开一个 URL 链接验证设备,成功验证后显示如下:
2021-10-07 14:36:31 I/Bot.2578566236: Login successful
2021-10-07 14:36:31 I/Bot.2578566236: Saved account secrets to local cache for fast login.
2021-10-07 14:36:31 I/Bot.2578566236: Login successful.
2021-10-07 14:36:33 V/Bot.2578566236: Event: BotOnlineEvent(bot=Bot(2578566236))
2021-10-07 14:36:33 I/Bot.2578566236: Bot login successful.
所系 (2578566236) Login successful
>
授权
/perm permit u2578566236 *:*
这指令表示允许用户 2578566236 执行任意指令。
主动登录
/<autoLogin|自动登录> add [account] [password] [passwordKind]
表示添加一个自动登录的账号。/autoLogin setConfig 123456 protocol ANDROID_PHONE
表示设置一个账号(123456)的一个配置项。
> /autoLogin add 2578566236 QQ密码
已成功添加 '2578566236'.
> /autoLogin list
- 账号: 2578566236
密码: ***********
> /autoLogin setConfig 2578566236 protocol ANDROID_PHONE
成功修改 '2578566236' 的配置 'protocol' 为 'ANDROID_PHONE'
>
插件
官方论坛中有很多功能插件,基本能满足需求,而且插件作者会有详细的介绍文档。
开发
官方开发文档
但是我暂时找不到战地五的相关插件,又在 Github 上搜索了一下,找到了一个项目:dzxrly/BFVStatus: 战地五战绩查询工具。
但是它是 App,不是机器人插件,而且在Tracker Network APIs for Developers找不到战地五的数据 API。
最后在BFBAN这个网站找到了相关的 API,Nice!
一边看着官方开发文档迷迷糊糊,一边参考着其他人的插件照猫画虎,折腾了大半天,写了个能用的半成品:ACodingDay/MiraiConsolePlugin: Mirai 开发插件,后续再进行完善。
参考
QQ机器人可用框架汇总(持续更新) - 一起活动吧
开发 mirai QQ机器人起步教程_叹之-CSDN博客_mirai python
mirai的(不)完全开发手册(java) · 看云