登录指南
注意
这篇文档还未完成,等待补充信息 已过期,不具备参考价值。
提示
本文档基于 无法登录的临时处理方案
本文档的 mirai
特指 mirai-console
。只要你能找到方法装载相关的库,理论上 mirai-core
通用。
寻求帮助
如果你在严格按照文档描述的方法进行操作后仍无法登录,可以加入群 1047497524 向群友寻求帮助。
不要相信 message
通常登录失败时会抛出一个异常,其中包含了 message=一条中文消息
。 这条中文消息是腾讯服务器返回给QQ客户端的消息,所谓版本过低要求你升级的意思并不是mirai要求你升级mirai版本,而是mirai的协议没有跟上腾讯,腾讯要求用户升级QQ版本。不要将版本过低的意思理解为升级到mirai最新版就没问题了。
选择登录方式
QQ 可以使用以下三种方式登录
- 密码登录
- 扫码登录
- 手机号登录
mirai 仅实现了前两种登录方式,扫码登录在 2.15 加入。
另外,并没有所谓“滑块登录”的方式,请不要将密码登录时需要的滑块验证当作一种登录方式,那是验证方式而不是登录方式。
登录之前
请确保你已经在一台 Android 手机中的官方QQ客户端登录了机器人的账号。这非常重要。 推荐使用已长期登录聊天的账号,不推荐使用刚注册的账号或很久没登录的账号。
第一次登录建议在你的家用电脑上进行,登录完成后退出登录,等待一段时间后将整个 mirai 传输到服务器上运行。
使用密码登录
控制台执行命令 /login QQ号 密码 协议
(协议可不填) 进行登录。
滑块验证
使用密码登录时,第一次通常需要进行滑块验证,在滑块验证之后可能还伴随有二维码验证或短信验证。后两种都是打开链接扫码或者输入短信验证码即可解决,故略过不谈。
首选使用 mirai-login-solver-sakura (在本文中将其简称为 sakura
) 进行登录验证。
要使用 sakura 进行登录验证,你需要一台真实的 Android 手机。
打开网页,在 Releases 中分别下载 .mirai2.jar
文件和 apk-release.apk
文件,前者作为插件安装到你的 mirai 中,后者安装到你的 Android 手机中。 在 mirai 中登录,在弹出的验证窗口中选择 Use SakuraCaptchaHelper
,按照窗口提示进行操作即可。
如果因为某些原因你无法使用 sakura,你可以尝试手动解决滑块验证。
请注意,TxCaptchaHelper 和 MiraiAndroid 目前已停止更新,请尽可能不要尝试使用它们来进行登录验证。
登录失败
通常,在解决滑块验证后可能会登录失败,登录失败时会出现 code=代码
的提示,代码为 235
/45
/237
均代表了风控问题,它们的严重性不同,235
/237
代表了疑似有问题,45
代表了确定有问题。
风控问题因人而异且经常更新,条件限制大,请务必严格按照操作提示进行操作。
不管出现什么代码,请注意不要做以下事情:
- 在同一个IP下频繁尝试登录账号。
- 频繁切换IP地址。
- 切换IP地址时归属地相差大,如从广东的家用电脑登出,又在上海的服务器登录。 (你可以在登出后等待半小时以上再进行登录,半小时是我的个人经验,你可以等得更久一点)
- 登录尝试次数过多。
- 在此之前,没有长期使用 QQ 的官方客户端登录机器人的账号。
- 如果此前登录成功过,不要让机器人发送消息的频率过高,比如不要将机器人拉进太多的群响应命令。
在登录失败需要重新登录之前,建议先删除账号设备信息和缓存,即 /bots/QQ号/
文件夹中的 device.json
文件和 cache
文件夹。
如果出现了 235
代码,请尝试:
- mirai 2.15 以下的版本 (不包括 2.15) 安装插件 fix-protocol-version,这个插件仅为临时修复,其 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-qrlogin 插件,在控制台执行命令 /qrlogin QQ号 协议
(协议可不填,建议填 ANDROID_WATCH
) 进行扫码登录。扫码登录要求 mirai 与手机 QQ 位于相同的网络环境。
关于扫码登录的自动登录,请见该插件的帮助文档。
登录失败
请检查你使用的协议。目前 mirai 仅支持使用 ANDROID_WATCH
和 MACOS
协议进行扫码登录。mirai-console-dev-qrlogin
默认使用 MACOS
协议,如果使用 MACOS
协议登录出现 code=235
错误请更换为 ANDROID_WATCH
协议。