二维码扫码登录
-
mirai-console-dev-qrlogin
mirai-console 的扫码登录命令 临时实现。
https://github.com/MrXiaoM/mirai-console-dev-qrlogin扫码登录目前可用状态比较糟糕,已不再推荐使用。请尝试使用其他方法登录。
https://wiki.mrxiaom.top/mirai/45
https://mirai.mamoe.net/topic/223注意事项
- 扫码登录不一定能够解决风控问题,该报 235 可能还得报 235,因人而异。
- 请确保 mirai 所在网络环境与你手机所在网络环境相似,否则QQ可能不会允许你确认登录。
- 请使用手机摄像头扫码,或者使用 XPosed 模块绕过不可通过相册扫码登录的限制。
- 扫码登录暂无预发行版本或稳定版本支持,仅有开发版支持,可能会有较明显的 bug。
- 扫码登录的接口可能会在
2.15.0-RC
发生变化,本插件不保证在以后版本的可用性。
最近已知的风控
- 服务器最近似乎针对手表协议进行了更新,发送消息过快可能会导致机器人被风控无法再发送群消息。
- 该风控可通过让机器人频繁发送消息复现。一般来说通过密码登录皆为 code=45
- 若机器人无法发送群消息,请删除 cache 和 device.json 重新登录再试。
- 请尝试寻找降低消息发送速度的措施。(可尝试使用插件 ryoii/mirai-rate-limit)
请等待密码登录相关协议的更新。
这是什么
最近二维码登录的 PR 合并了,但是我并没有找到登录命令,所以我打算写一份暂时用着。为了较快地能写出一套登录命令,大部分代码是抄的mirai原来的自动登录系统。
用法
在 mirai 版本大于或等于
2.15.0-dev-27
的控制台中安装该插件,如果你不会下载开发版本,可在本文末尾加群下载一键包。你也可以使用最近的一个测试版本2.15.0-M1
安装插件后启动,在控制台输入命令
qrlogin <QQ号>
即可进行二维码登录,第一次进行二维码登录要求使用手机QQ扫码二维码确认,第二次及以后可自动使用登录会话来登录而无需扫码。建议在第一次登录后添加自动登录。
如果看不清控制台输出的二维码图片,可以在
./data/top.mrxioam.qrlogin/
找到二维码图片文件。使用
ANDROID_WATCH
协议进行扫码登录时,需要 mirai 与你的手机处于同一网络环境,可以通过连接同一 WiFi 来实现。
如果你的 mirai 在服务器上,可尝试在服务器上搭建代理服务器,手机连接代理服务器再扫码。你页可以在本地电脑扫码登录完成后退出登录,在服务器删除
./bots/机器人QQ号
文件夹,将本地的./bots/机器人QQ号
文件夹传输到服务器,至少等待半小时再登录。
等待足够长的时间避免短时间内异地登录造成风控要求重新扫码,这个方法大概率可以成功,在已被标记风控的IP地址可能无法成功。帮助命令
和 mirai-console 自带命令基本一致,只是命令前缀多了
qr
,选项少了密码。/qrLogin <qq> [protocol] # 扫码登录,协议可用 ANDROID_WATCH 和 MACOS,默认 ANDROID_WATCH /qrAutoLogin add <account> # 添加(扫码登录)自动登录 /qrAutoLogin clear # 清除(扫码登录)自动登录的所有配置 /qrAutoLogin list # 查看(扫码登录)自动登录账号列表 /qrAutoLogin remove <account> # 删除一个(扫码登录)自动登录账号 /qrAutoLogin removeConfig <account> <configKey> # 删除一个账号(扫码登录)自动登录的一个配置项 /qrAutoLogin setConfig <account> <configKey> <value> # 设置一个账号(扫码登录)自动登录的一个配置项
添加 jvm 参数
-Dmirai.no-desktop
可以禁用窗口式扫码登录处理器。
添加 jvm 参数-Dqrlogin.no-solver
可以禁止本插件修改登录解决器。构建
非开发者可无视此部分。
./gradlew buildPlugin
对于想要使用 扫码登录 的
mirai-core
用户,请见 mirai 2.15.0-M1 的 Release Note,里面有扫码登录的操作方法。
或者参考本插件源码:登录命令: QRLoginCommand.kt
修改登录解决器: QRLoginSolver.kt扫码登录版本一键包下载
加入群 1047497524 在群文件
Mirai 一键包
文件夹下载。如果你觉得有用,请给本贴
点赞
,或到 Github 项目地址点一个标星
(Star)捐助
前往 爱发电 捐助我。
-
用的一键包,扫码提示是MACQQ,但扫完直接235版本过低
-
更新:使用swing窗口显示二维码,支持关闭窗口取消登录
-
谢谢大佬,可以用
-
-
更新,默认使用手表协议。
-
-
更新
- 修复 在 linux 等无桌面环境下登录报错的问题。
- 新增 添加 jvm 参数
-Dmirai.no-desktop
来使用默认登录解决器,不弹出扫码窗口。
-
此回复已被删除! -
-
更新 0.1.5
- 使用 BuildConstants,不会再出现忘记改版本号的情况
- 本插件仅支持
2.15.0-dev-27
或以上的 mirai 版本,在 2.14.0 或以下加载该插件时将会自动退出
-
想问一下这是为什么,mirai版本号2.15.0-M1
-
@yuureiko 卸载 mirai-login-solver-sakura 或将其升级到最新版
-
@MrXiaoM 可以了!谢谢大佬!
-
-
更新 0.1.6
- 改为最后再覆盖登录解决器,避免与 mirai-login-solver-sakura 的旧版本冲突。
-
如果是在服务器上扫码的话提示IP不统一,必须得在本地环境扫么?
-
- 可以在本地扫了登录完毕之后退出,
大概半小时
之后将本地的bots/qq号/
文件夹覆盖到服务器。 - 可以尝试在服务器架设代理,手机连接服务器的代理之后再登录扫码。
我没有验证架设代理的方法是否可行,但是我用第一种方法是可行的。等待时间极为重要,不等待足够长的时间,腾讯可能会因为两次登录IP归属地差距较大造成风控 要求重新扫码 或出现风控时经典的禁止登录。
半小时仅是我的经验,具体多久自行摸索
- 可以在本地扫了登录完毕之后退出,
-
@MrXiaoM 覆盖到服务器后,也同样使用扫码的方式再次登录对吧~
-
大佬,mirai-core要怎么用呢,直接引入jar包吗?
-
-
这是 Mirai Console 插件,编写这个插件的原因是 Mirai Console 2.15.0-M1 还没实现相关指令,这个插件只是把扫码的api封装成指令
-
Mirai Core 2.15 可以直接调用相关 api 调用扫码登录
-
相关文档自己查阅
-
-
@cssxsh
ok,明白了,感谢大佬。 -
-
艹,被误导了,不光是升级2.15,还要装扫码插件