mirai-console 的扫码登录命令 临时实现。
https://github.com/MrXiaoM/mirai-console-dev-qrlogin
https://wiki.mrxiaom.top/mirai/45
https://mirai.mamoe.net/topic/223
最近已知的风控
服务器最近似乎针对手表协议进行了更新,发送消息过快可能会导致机器人被风控无法再发送群消息。 该风控可通过让机器人频繁发送消息复现。一般来说通过密码登录皆为 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)
捐助前往 爱发电 捐助我。