使用篇 /02/ 在控制台登录


什么是控制台

提示

这是给小白的提醒

在上一章中,我们打开 MCL 或者打开启动脚本打开的黑窗口就叫做控制台。 在控制台中可输入命令并点击键盘上的 Enter 键将命令发送给程序,本文中的「在控制台中输入xxx」均代表输入命令并发送给程序。

使用登录命令来登录

在控制台中输入 login QQ号 QQ密码 协议 即可登录(注意空格),协议可不填,默认使用手机QQ协议。当然,第一次登录一般来说不是一帆风顺的,你可能会遇到验证码或者设备锁之类的阻碍。

QQ限制了同种协议的登录,每个协议只能有单个实例登录,多个实例不能在同一个协议登录,否则之前已登录的实例会被「挤下线」。如果你需要过设备锁,或者在机器人在线时正常登录使用机器人的账号,你需要使用不同的协议来登录 mirai。可用的协议如下:

  • ANDROID_PHONE 安卓手机版本的 QQ
  • ANDROID_PAD 安卓平板版本的 QQ
  • ANDROID_WATCH 安卓手表版本的 QQ
  • MAC MacOS 版本的 QQ
  • IPAD iPad 版本的 QQ

如果你在执行登录命令后不久看到了绿色的 Login successfully 字样,则代表机器人登录成功了,这一章没你什么事了,前往下一章吧。反之,继续看这一章。

安装签名服务

目前 mirai 不安装第三方签名服务的情况下,很大概率会得到 code=45 的登录失败结果。

安装方法详见:mirai 登录全解

常见登录失败原因

搬自 mirai 官方文档open in new window

错误信息可能的原因可能的解决方案
当前版本过低密码错误检查密码或修改密码到 16 位以内
当前上网环境异常设备锁开启或关闭设备锁 (登录保护)
禁止登录需要处理滑块验证码处理滑块验证码
密码错误密码错误或过长手机协议最大支持 16 位密码 (#993open in new window. 在官方 PC 客户端登录后修改密码

处理滑块验证码

目前解决滑块验证有如下方法

SakuraCaptchaHelper

提示

需要 Android 手机,iOS 用户请使用原始方法或者手动抓取,请不要使用 Android 模拟器,没用的

  1. 打开发布地址:https://github.com/KasukuSakura/mirai-login-solver-sakura/releases
  2. 下载并安装滑块验证插件。 (mirai-login-solver-sakura-x.x.x.mirai2.jar)
  3. 下载并安装APP。 (app-release.apk)
  4. 如果你的 mirai 部署在家用电脑,请将你的电脑和手机连接到相同局域网。比如电脑连接路由器,手机连接该路由器发出的 WiFi。
  5. 如果你的 mirai 部署在云服务器上,请编辑你的 mirai 启动脚本,添加 jvm 参数 -Dmlss.port=端口,并确保该端口可外部访问。
  6. 启动 mirai,正常登录。

如果你的环境支持桌面

需要滑块验证时,将会弹出一个提示框

  1. 点击按钮 Use SakuraCaptchaHelper,此时将会弹出一个二维码提示框。
  2. 在手机打开安装的APP,扫描该二维码,并按提示完成验证即可。

如果你的环境不支持桌面

  1. 确认你的IP地址并记下来,如果是家用电脑局域网,使用 ipconfig 等方式查看;如果是云服务器,则使用服务器的公网地址。
  2. 在手机打开按照的APP,输入提示要求打开的地址。 (要把 <ip> 替换成上一步得到的IP地址)
  3. 按照提示完成验证即可。
  4. 完成之后可能会让你选验证方式,legacy 是打开网页,设备锁扫码验证;sms 是短信验证。推荐使用短信验证。

原始方法

提示

该方法需要一台 Windows 电脑和一台 Android 手机。

电脑需要安装 Google Chrome Desktopopen in new window, 手机需要安装 Google Chrome Mobileopen in new window。 如果你无法访问 Google Play,你可以使用笔者随便找的可信源open in new window或者自行使用搜索引擎寻找资源。

提示

或者需要一台 MacOS 电脑和一台 iOS 手机。

请使用真实设备,不要使用模拟器。

参见 https://github.com/project-mirai/mirai-login-solver-seleniumopen in new window

手动抓取

注意

请务必仅在条件非常匮乏的情况下使用本方法。
能用其他方法就不要用这个方法。
在非 Android 环境下,滑块网页可能会给你返回一个错的 ticket 导致无法登录!

这个方法需要操作者非常熟练,如果速度过慢或者输入错误次数过多,可能会以 code=237 登录失败,或被服务器暂时屏蔽。
如果你想练习使用这种方法通过滑块验证,可以输入一个错误的QQ号和密码。

本文在 Windows 10 环境下,使用 Microsoft Edge 浏览器示例。

  1. 打开浏览器,新建一个 inPrivate 窗口 (隐私窗口)。
  2. 打开开发人员工具,可按快捷键 F12 或者在 … -> 更多工具 -> 开发人员工具 打开。
  3. 点击左上角第二个图标切换设备仿真以开启设备仿真,目的是尽可能模拟 Android 浏览器。
  4. 切换到 网络 (Network) 选项卡。
  5. 在这个隐私窗口打开滑块验证链接。滑块链接通常出现在日志 [SliderCaptcha] Captcha link: 后面,如果你安装了 mirai-login-solver-sakura,滑块链接将会出现在弹窗中。
  6. 在网页中完成滑块验证,目前通常需要滑两次。

网页白屏(完成)之后,在第4步打开的网络选项卡中,翻到最下面。

  • 找到 onVerifyCAPTCHA 开头的,点击负载,复制 "ticket": 后面被双引号包裹的内容,不包括双引号
  • 或者找到 cap_union_new_verify,点击预览,复制 ticket: 后面被双引号包裹的内容,不包括双引号

用以上两种方法中任意一种方法复制的东西就是我们需要的 ticket
将我们复制的 ticket 粘贴回控制台里然后回车,或者粘贴回弹窗(如果有)里的另一个输入框然后确定,就完成滑块验证了。

如果你在感觉速度够快、基本没有错误过的情况下完成滑块验证之后 code=237 登录失败,就放弃使用手动抓取的方法吧。

处理滑块之后的验证

通常滑块之后会有网页扫码验证(legacy),和短信验证(sms)。
这两个只要你扫码或者填短信验证码就能解决,没什么技术难度,就不提了。

除此之外

还有一种已经好久都没有出现过的验证码,图片验证码。
这种验证码可能已经被腾讯弃用了。
就是出个图片,里面有4个字母数字让你填的那种经典验证码,就不说了。

完成

至此,最麻烦的登录部分你已经完成了!接下来你可以配置自动登录或者跳过这步直接去搜寻插件来增加机器人的功能。

使用篇 /03/ 配置自动登录
使用篇 /04/ 搜寻和安装插件