欢迎光临散文网 会员登陆 & 注册

【QQ机器人】给纯新手的通俗易懂安装教程,长期接受评论私信答疑[基于mirai](上)

2022-09-07 17:45 作者:子君9297  | 我要投稿

        笔者在22年二月份接触到了Mirai这个开源的qq机器人项目,在研究了半年之久后,想要作为一个熟悉的使用者向大家介绍并分享一下这个机器人,于是在此写了个简单的教程。尽管网上的教程有很多,尽管我在文中使用的术语、技术也不是非常专业的,但是我还是希望自己亲自写一篇,尽可能详细通俗的搭建教程,让大部分萌新看到后都能尝试并成功搭建属于自己的qq机器人。

        本文中会引用比较多的GitHub页面,而对于缺少网络工具的网友来说可能打不开,所以对于文中提到的所有的GitHub下载页面,文章中都提供了云盘下载链接,文中所有的网页链接,都只是作为内容原出处的标注,文章会对链接中页面上的内容进行简略的复述和说明,不需要大家都打开查看。

        笔者第一次写网络教程,也是第一次用B站的专栏功能,如果有需要改正或改进的地方请多多指正!

0.安装前言

        Mirai核心的项目地址是https://github.com/mamoe/mirai注意此链接项目的release里没有Mirai的直接安装文件,不要去下载这个项目的release。下图为项目页面的介绍信息和值得关注的重要信息:

        首先,这个库以及整个平台完全免费,所以只要自己肯认真研究,完全不花一分钱就能使用,官方“不鼓励,不支持一切商用”。Mirai支持qq的绝大部分协议(功能),但是以下协议不会支持:

        金钱相关,如点赞、收付款;敏感操作,如主动添加好友、主动加入群、主动邀请好友加群;安全相关,获取账号登录凭证(token,cookie等),所以自动抢红包这种涉及金钱相关的是不会被允许的,自动加好友加群发广告也是做不到的,安全相关操作将会使登录更加安全,但是也造成了登录时的繁琐操作。

1.安装

      获取安装程序链接在Mirai这个项目的用户手册页面,链接为https://github.com/mamoe/mirai/blob/dev/docs/UserManual.md。这个文档中提到了一下关键信息:

  1. 使用 Mirai,一般人要启动的是 Mirai 控制台(即 Mirai Console),它可以加载插件。

  2. Mirai 控制台现在有两个版本,插件在这两个版本的 Mirai Console 上都可以运行:纯控制台和图形界面。

       其中,第一条提到了Mirai的运行模式,就是在Mirai整个主体框架下,用户选择性的安装功能性的插件来丰富功能,使用时启动Mirai控制台(Mirai Console)并令其加载插件。

        第二条提到了Mirai具有两个版本,分别是稳定、也适合服务器的纯控制台版本和测试版,不稳定的图形页面版本。下面的两张图分别展示了两个版本不同的外观:

                1.纯控制台版

                2.图形界面

        我个人认为,两个版本的区别在于,纯控制台版本为命令行操作,适合服务器,优势在于更稳定、占用资源更少;图形界面版本为窗口操作,使用时更加直观,优势是部分内容和操作可视化。本教程只会介绍第一种,纯控制台版本,也推荐大家使用这个版本,这个版本相较于第二种确实会对一些不熟悉计算机操作的萌新造成一些困扰,毕竟大部分人,也包括我,对于软件还是更加熟悉窗口操作,对于黑框白字的命令行往往感到陌生而复杂,从而对使用感到抵触。但是希望大家能尽量克服这些心理阻碍,本教程会尽力为大家排解在使用控制台时会遇到的困难与问题。

        纯控制台版本的说明文档:https://github.com/mamoe/mirai/blob/dev/docs/ConsoleTerminal.md。纯控制台使用的软件为Mirai Console 启动器(mirai-console-terminal),一般会采用MCL来代称。本篇文章剩下的内容主要就是围绕着MCL的安装与使用。本文默认读者使用的是 Windows 操作系统,但 Mirai Console 并不仅限于 Windows 平台使用,在其他操作系统上的安装以及使用方法应当是类似的。

        Mirai-Console-terminal安装程序的真正下载地址:

            Github的官方下载地址:https://github.com/iTXTech/mcl-installer/releases,这个下载稳定的正式版最新更新时间还是22年5月,建议选择稳定版本。如果对于选择下载哪个感到疑惑,请选择带有Latest标签版本mcl-installer-1.0.7-windows-x86.exe

文章提供的此安装文件的其他下载途径:

百度云:https://pan.baidu.com/s/1iI0zYGUGl9-K90Zyfp9uzA?pwd=9297 提取码:9297

阿里云:https://www.aliyundrive.com/s/G46LmBWAUqm

下载后,在电脑任意位置新建一个文件夹用于运行机器人,注意此文件夹的路径将可能会影响到后续的操作,保证路径不要有中文可以避免很多意料之外的问题(尤其注意如果你的操作系统电脑账号名是中文的话不要将文件夹设在桌面)。将mcl-installer-1.0.7-windows-x86.exe放到你要安装的文件夹内,双击启动,此时可能弹出Windows的防火墙,我们点更多信息下面会出现仍要运行。

        之后我们会看到命令行页面:

        安装时首先要处理的是第一条指令,即是否要同时安装Java环境,如下图

        如果你对于你电脑上有没有java不熟悉,请选输入y并回车,并在之后连续的几个问题中摁回车确认,其中Java的安装可能需要一段时间等待。

        如果你很清楚此台电脑上安装过java环境,则在第一次输入n跳过安装以减少过多安装java带来的其他可能冲突。

        之后处理的第二句话就是确认安装MCL,直接输入y回车即可。


        出现以下这行字之后就说明我们初步安装成功。此时可以按回车退出。

2.初次运行

        在安装后文件夹的内容应该如下(或者多了一个java文件夹):

        其中安装程序文件mcl-installer-1.0.7-windows-x86.exe因为安装已完成可以选择删除。之后我们每次主要运行的程序为mcl.cmd文件,如果你文件夹不显示文件后缀,你会显示两个名为mcl的文件,建议百度查询“如何显示文件后缀名”,这不是必要的,但是会让你减少麻烦。

        然后要做的就是第一次启动mcl.cmd,启动后会开始MCL内核文件的补充下载:

        等待所有下载完成之后,出现下图与绿字提示I/main: mirai-console started successfully.,则恭喜你,成功完成了MCL主体框架安装的步骤,注意,只要你完成了这一步,说明MCL的主体框架没有问题,如果之后的操作导致窗口闪退,则可以排除此处的原因。

        如果安装过程中卡住了并出现了如下图提示,则说明你的网络出现了问题,可以更换网络多尝试几次(比如将电脑网络连接改成连接至手机热点而不是家里的WIFI或者校园网),直至能出现上图的结果。

        其中,图中的“SLF4J:……”等红色字体部分可以直接忽略,这不影响我们正常使用。当你的窗口最下行是" >_  "的字符时,即说明你现在处于MCL的运行处理中,此时即可输入要执行的指令并回车来操作,也就是说,现在开始,我们要通过在命令行里输入功能指令来使用这个程序。

        在此穿插一些关于命令行相关的操作值得注意的事项,可以跳过此部分,但是这些看似简单细节,可能会避免使用时造成一些的小问题和以后运行过程中的困扰:

        1.命令行窗口中选中文本右键不会出现选择的选项,而是直接复制和粘贴,大体规则为:鼠标选中命令行中的一段文本后右键为直接复制这段文本,不选择文本直接右键窗口为在提示符下划线 的后面粘贴之前复制的文本。Ctrl+C和Ctrl+V等快捷键不再适用,千万不要因为习惯而使用快捷键操作。

        2.选择命令行窗口中的文本会阻塞程序的运行。如下图我拉选了一部分文本。

 或者我只是点到了窗口中的某一位置,如下图红圈位置

        这些都会导致命令行窗口的标题出现选择的字样,此时命令行中原本运行的程序会被阻塞,表现为程序卡住了,机器人不回复了,此时右键一次命令行的窗口内(黑框里)任意位置即可取消这种状态。

        除此之外,命令行有一套专用的操作规则,但是对于使用MCL,我们不需要掌握其他复杂的内容。

        首先,我们可以输入 /help 来查询目前支持的指令和作用,输入时在指令前端不需要一定输入斜杠 / ,也就是说输入 /help 和直接输入 help 都可以执行这个指令,依据你的习惯即可。指令 /help 的作用列出的就是当前使用的MCL及插件中的所有指令及说明。

        在此简单说明一下上图中,我们使用过程中主要会用到的指令以及作用:

            所有以/autoLogin 开头的为自动登录相关配置,接下来会细说。

            /login <qq> [password] 为登录一次此qq号

            所有以/permission 开头的为权限配置,简写为 /perm ,在之后配置插件时会细说。

             /stop 退出程序,建议使用此方法退出MCL而不是直接点窗口的叉号,直接点叉号关闭会导致一些关闭时的存储数据功能不被运行,会影响使用。

            另外/exit具有和/stop相同功能。

        请注意:     

        1.所有指令单词之间的空格不能缺少,请仔细检查自己输入是否有缺少。    

        2.所有的指令输入时不需要用“< >”或"[ ]"括起来,此处的括号表示这里是一个参数,被"< >"括起来的为必填参数,是指令的一部分,缺少则不能执行;被"[ ]"括起来的为选填参数,缺少这部分参数不影响指令。

        例如我在输入指令“/autoLogin add <account> <password> [passwordKind]”时,我要输入的实际指令是“/autoLogin add 114514 awsl9961”,我必须输入账号<account>和密码<password>,而[passwordKind]我不需要可以不填。

        3.大小写对于指令没有影响,例如 /autoLogin 和 /autologin 是一样可以执行的。    

        4.本文中涉及到命令行指令,在读者亲自执行时,建议不要直接从文中复制,因为这样虽然方便但是可能会造成意外的字符串输入,认真手动输入会避免一些的问题。

3.登录账号

        到目前为止MCL虽然已经启动,但是没有在运行任何账号,接下来将介绍账号登录相关内容。所有比较长的指令会用引号括起来表示以方便阅读。

        每次打开MCL等待其启动成功后都可以用 “/login  qq号  密码” 这一指令执行一次登录,也就是说我每次打开之后可以通过输入这个指令登录,但是通常情况下我们会固定某一个账号作为使用账号,所以我们需要建立一个自动登录以在运行MCL同时自动登录免除输入指令登录。因此我们需要使用指令"/autoLogin add qq号 密码 "来建立一个自动登录,你可以在完成登录之前或之后都能执行此命令,但是请注意添加之后不会立即执行登录,而是在下次运行MCL时,而且不会检查你的账号密码是否正确,所以填写时请注意不要出错,如果出错了,使用指令"/autoLogin clear"清除之前的自动登录并重新输入一次。

        例如要设置自动登录qq号1145141919,使用密码abc123则要输“ /autologin 1145141919 abc123 ”,输入完成之后即给MCL添加了自动登录的设置,此时如果还没有登录,可以直接输入 /stop 退出再重开MCL进行自动登录。

        登录时会遇到一个难关,就是腾讯会让你进行滑动验证,即以下弹窗(如果没有请忽略此部分步骤):

        首先,我要说明这个问题其实是一件非常令人头疼而且难解的问题,而且这个问题很有可能不只会在首次登录时出现,而是在以后的使用过程中反复出现。这个问题的官方解决办法介绍文档为https://github.com/project-mirai/mirai-login-solver-selenium,其中提到了3个办法,而本着教会大部分人和减少篇幅的目的,我省略了适用于少数情况的非常复杂但是更通用的办法。因为如果我要把上述方法介绍详尽,会极大程度的增加篇幅,因此我默认所有的读者:有一台能上网能装软件的安卓手机。如果你没有或者你是IPhone,那么非常抱歉,你需要自行阅读上面的文档并解决问题。另外,不要尝试在 Android 模拟器上通过任何方式解决验证码。

       下面我来介绍最简单的验证办法,使用这个办法需要再额外在手机上安装一个APP叫滑动验证助手:TxCaptchaHelper,以减少我们的操作。

        首先,下载滑动验证助手TxCaptchaHelper,此处依旧列举了多种下载方式:

            1.官方原地址:https://github.com/mzdluo123/TxCaptchaHelper/releases

            2.百度云:https://pan.baidu.com/s/1Oj_YYx-GQfiftDQOGMDcGQ?pwd=9297 提取码:9297

            3.阿里云:啊这,阿里云说它不支持apk的文件分享。

        下载完成并安装这个app之后,我们就可以在这个app的帮助下完成登录,具体操作为点击登录时弹窗出来的下图这个按钮(如果太久没有处理可能使此次验证会失效,点叉号关闭此窗口可以刷新新验证)

然后在几秒到几分钟内就会出现4位的请求码,此时我们打开手机app并输入这四位数字

如果你在这里迟迟没有显示此提示,而是一直显示”HTTP Response 429“,请过几小时后重试

        然后在app输入请求码并点击下一步,然后进行滑动。

        成功后之前的请求码窗口会自动消失,至此我们顺利完成了设备的滑动验证,还要解决可能出现安全验证的问题(如果没有可以跳过):

        解决方法正如提示框中所说,我们需要打开安全验证框中URL一行出现的连接,或者直接点击提示框里的蓝字设备验证锁,打开后为qq安全验证界面,可能如下图所示:

        从上面的方式中选择适合你的方式即可,其中qq扫描验证需要用手机qq登录当前账号并扫描,账号信息验证需要填选一些账号信息,选对了就可以。

        显示验证成功后,关闭此网页和Mirai之前那个登录窗口,即可完成登录!

关掉这个窗口

        如果在使用过程中,进行了滑动验证但是仍然无法登录登录,出现了 code=237, title=安全提醒, message=当前网络不稳定 或者 code=235, title=温馨提示, message=当前QQ版本 过低 红字报错,请前往教程的(下)篇,我会专门用一部分篇幅统一讲解。

        此时我们向机器人账号发消息或者在机器人所在的群里发消息,机器人可以正常接收

        那么至此,我们已经完成了MCL的安装教程。是的,尽管没有任何功能,但是这个框架已经能完美的运行在了我们的设备上,能正常收发消息,这就是一个qq机器人的内核框架,如果比作一台真正的机器人,他现在已经可以运作了,只不过没有任何功能,啥也不会做。为了实现我们想要的功能,我们需要给这个加装更多的插件

        如果你看这篇文章的目的是明确知道自己接下来要安装哪些功能插件,而且知道哪里能寻找并安装更多插件,只是不解于MCL的安装流程,那么对于你来说本篇教程到此为止已经结束了。

        而如果你还对于怎么用现在这个没用功能的空白qq机器人没有头绪,或者想装更多功能而不知道怎么做,那么接下来继续看本教程的(中)篇或者以后的更新,我会继续介绍插件安装方法,继续采用这种手把手的通俗教程,向大家介绍Mirai中的优秀插件。让你的qq机器人变得有趣、多功能。其中我已亲自实现和使用过的功能有:每日知乎新闻速报、B站番剧速报;订阅B站up动态、视频发布、直播开播提醒;自定义回复消息;pixiv站相关:订阅画师/tag,查排行榜,以图搜图,根据tag搜涩图;模拟手游(原神、方舟)抽卡;跑团骰子相关指令;机器学习群聊:学群友说话的电子鹦鹉(带文字转语音);一大堆的表情包、梗图生成器;自动批处好友申请加群申请,群发消息;天气、日历查询;群聊天词云生成;Minecraft服务器和群聊互通;反撤回闪照;定时随机推送消息(疯狂星期四)等;给群配置经济系统并加入小游戏、签到等功能;甚至能接入NovelAI和OpenAI,让你在qq群里就能AI画图跟使用AI聊天。当然这些仅仅是我用过的,并不能涵盖插件平台上所有作者的成果,只是如果有人对于其中的某些功能感兴趣可以直接私信我了解。同时,在此向所有参与开发了Mirai的作者以及平台上所有插件作者表示感谢!!!

        总之,教程的上篇到这里就结束了,非常感谢你坚持看到这里,初次投稿请多指教!

【QQ机器人】给纯新手的通俗易懂安装教程,长期接受评论私信答疑[基于mirai](上)的评论 (共 条)

分享到微博请遵守国家法律