登录指南


注意

这篇文档还未完成,等待补充信息 已过期,不具备参考价值。

提示

本文档基于 无法登录的临时处理方案open in new window
本文档的 mirai 特指 mirai-console。只要你能找到方法装载相关的库,理论上 mirai-core 通用。

寻求帮助

如果你在严格按照文档描述的方法进行操作后仍无法登录,可以加入群 1047497524 向群友寻求帮助。

不要相信 message

通常登录失败时会抛出一个异常,其中包含了 message=一条中文消息。 这条中文消息是腾讯服务器返回给QQ客户端的消息,所谓版本过低要求你升级的意思并不是mirai要求你升级mirai版本,而是mirai的协议没有跟上腾讯,腾讯要求用户升级QQ版本。不要将版本过低的意思理解为升级到mirai最新版就没问题了

选择登录方式

QQ 可以使用以下三种方式登录

  • 密码登录
  • 扫码登录
  • 手机号登录

mirai 仅实现了前两种登录方式,扫码登录在 2.15 加入。
另外,并没有所谓“滑块登录”的方式,请不要将密码登录时需要的滑块验证当作一种登录方式,那是验证方式而不是登录方式。

登录之前

请确保你已经在一台 Android 手机中的官方QQ客户端open in new window登录了机器人的账号。这非常重要。 推荐使用已长期登录聊天的账号,不推荐使用刚注册的账号或很久没登录的账号。

第一次登录建议在你的家用电脑上进行,登录完成后退出登录,等待一段时间后将整个 mirai 传输到服务器上运行。

使用密码登录

控制台执行命令 /login QQ号 密码 协议 (协议可不填) 进行登录。

滑块验证

使用密码登录时,第一次通常需要进行滑块验证,在滑块验证之后可能还伴随有二维码验证或短信验证。后两种都是打开链接扫码或者输入短信验证码即可解决,故略过不谈。

首选使用 mirai-login-solver-sakuraopen in new window (在本文中将其简称为 sakura) 进行登录验证。
要使用 sakura 进行登录验证,你需要一台真实的 Android 手机。
打开网页,在 Releases 中分别下载 .mirai2.jar 文件和 apk-release.apk 文件,前者作为插件安装到你的 mirai 中,后者安装到你的 Android 手机中。 在 mirai 中登录,在弹出的验证窗口中选择 Use SakuraCaptchaHelper,按照窗口提示进行操作即可。

如果因为某些原因你无法使用 sakura,你可以尝试手动解决滑块验证open in new window

请注意,TxCaptchaHelperopen in new windowMiraiAndroidopen in new window 目前已停止更新,请尽可能不要尝试使用它们来进行登录验证。

登录失败

通常,在解决滑块验证后可能会登录失败,登录失败时会出现 code=代码 的提示,代码为 235/45/237 均代表了风控问题,它们的严重性不同,235/237 代表了疑似有问题,45 代表了确定有问题。

风控问题因人而异且经常更新,条件限制大,请务必严格按照操作提示进行操作。

不管出现什么代码,请注意不要做以下事情:

  • 在同一个IP下频繁尝试登录账号。
  • 频繁切换IP地址。
  • 切换IP地址时归属地相差大,如从广东的家用电脑登出,又在上海的服务器登录。 (你可以在登出后等待半小时以上再进行登录,半小时是我的个人经验,你可以等得更久一点)
  • 登录尝试次数过多。
  • 在此之前,没有长期使用 QQ 的官方客户端登录机器人的账号。
  • 如果此前登录成功过,不要让机器人发送消息的频率过高,比如不要将机器人拉进太多的群响应命令。

在登录失败需要重新登录之前,建议先删除账号设备信息和缓存,即 /bots/QQ号/ 文件夹中的 device.json 文件和 cache 文件夹。

如果出现了 235 代码,请尝试:

  • mirai 2.15 以下的版本 (不包括 2.15) 安装插件 fix-protocol-versionopen in new window,这个插件仅为临时修复,其 1.3.0 版本的协议版本信息变更已在 mirai 2.15 中包含,2.15 无需安装。
  • 检查密码是否错误。
  • 检查密码长度是否在 16 位以内。

如果出现了 237 代码,请尝试:

  • 滑块验证操作是否正确
  • 是否尝试次数过多

如果出现了 235/237/45 代码,请尝试:

如果出现了 238 代码,请尝试使用扫码登录。

使用扫码登录

mirai 2.15.0-M1 现已推出扫码登录,但目前接口设计不稳定,官方暂不提供扫码登录命令。

你可以将你的 mirai 升级到 2.15.0-M1 并安装 mirai-console-dev-qrloginopen in new window 插件,在控制台执行命令 /qrlogin QQ号 协议 (协议可不填,建议填 ANDROID_WATCH) 进行扫码登录。扫码登录要求 mirai 与手机 QQ 位于相同的网络环境。

关于扫码登录的自动登录,请见该插件的帮助文档。

登录失败

请检查你使用的协议。目前 mirai 仅支持使用 ANDROID_WATCHMACOS 协议进行扫码登录。mirai-console-dev-qrlogin 默认使用 MACOS 协议,如果使用 MACOS 协议登录出现 code=235 错误请更换为 ANDROID_WATCH 协议。