MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    二维码扫码登录

    插件发布
    kotlin plugin qrcode 二维码登录
    28
    54
    19555
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • MrXiaoM
      MrXiaoM 童心未泯 最后由 MrXiaoM 编辑

      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

      Releases Stars

      注意事项

      • 扫码登录不一定能够解决风控问题,该报 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)

      捐助

      前往 爱发电 捐助我。

      1 条回复 最后回复 回复 引用 14
      • D
        dragon0629 最后由 编辑

        用的一键包,扫码提示是MACQQ,但扫完直接235版本过低

        1 条回复 最后回复 回复 引用 0
        • MrXiaoM
          MrXiaoM 童心未泯 最后由 编辑

          更新:使用swing窗口显示二维码,支持关闭窗口取消登录

          1 条回复 最后回复 回复 引用 1
          • FragyPig-香竹酱
            FragyPig-香竹酱 最后由 编辑

            谢谢大佬,可以用

            1 条回复 最后回复 回复 引用 0
            • Referenced by  MrXiaoM MrXiaoM 
            • MrXiaoM
              MrXiaoM 童心未泯 最后由 编辑

              更新,默认使用手表协议。

              1 条回复 最后回复 回复 引用 0
              • Referenced by  MrXiaoM MrXiaoM 
              • MrXiaoM
                MrXiaoM 童心未泯 最后由 编辑

                更新

                • 修复 在 linux 等无桌面环境下登录报错的问题。
                • 新增 添加 jvm 参数 -Dmirai.no-desktop 来使用默认登录解决器,不弹出扫码窗口。
                1 条回复 最后回复 回复 引用 0
                • M
                  misakarinkon 最后由 编辑

                  此回复已被删除!
                  1 条回复 最后回复 回复 引用 0
                  • Referenced by  WYH2004 WYH2004 
                  • MrXiaoM
                    MrXiaoM 童心未泯 最后由 编辑

                    更新 0.1.5

                    • 使用 BuildConstants,不会再出现忘记改版本号的情况
                    • 本插件仅支持 2.15.0-dev-27 或以上的 mirai 版本,在 2.14.0 或以下加载该插件时将会自动退出
                    1 条回复 最后回复 回复 引用 0
                    • Y
                      yuureiko 最后由 编辑

                      想问一下这是为什么,mirai版本号2.15.0-M1
                      QQ图片20230418124606.png

                      MrXiaoM 1 条回复 最后回复 回复 引用 0
                      • MrXiaoM
                        MrXiaoM 童心未泯 @yuureiko 最后由 编辑

                        @yuureiko 卸载 mirai-login-solver-sakura 或将其升级到最新版

                        Y 1 条回复 最后回复 回复 引用 2
                        • Y
                          yuureiko @MrXiaoM 最后由 编辑

                          @MrXiaoM 可以了!谢谢大佬!

                          1 条回复 最后回复 回复 引用 0
                          • Referenced by  S sdlm 
                          • MrXiaoM
                            MrXiaoM 童心未泯 最后由 编辑

                            更新 0.1.6

                            • 改为最后再覆盖登录解决器,避免与 mirai-login-solver-sakura 的旧版本冲突。
                            1 条回复 最后回复 回复 引用 0
                            • Q
                              qingfengxiu 最后由 编辑

                              如果是在服务器上扫码的话提示IP不统一,必须得在本地环境扫么?

                              MrXiaoM 1 条回复 最后回复 回复 引用 0
                              • MrXiaoM
                                MrXiaoM 童心未泯 @qingfengxiu 最后由 MrXiaoM 编辑

                                @qingfengxiu

                                • 可以在本地扫了登录完毕之后退出,大概半小时之后将本地的 bots/qq号/ 文件夹覆盖到服务器。
                                • 可以尝试在服务器架设代理,手机连接服务器的代理之后再登录扫码。

                                我没有验证架设代理的方法是否可行,但是我用第一种方法是可行的。等待时间极为重要,不等待足够长的时间,腾讯可能会因为两次登录IP归属地差距较大造成风控 要求重新扫码 或出现风控时经典的禁止登录。

                                半小时仅是我的经验,具体多久自行摸索

                                Q Cicini 2 条回复 最后回复 回复 引用 0
                                • Q
                                  qingfengxiu @MrXiaoM 最后由 编辑

                                  @MrXiaoM 覆盖到服务器后,也同样使用扫码的方式再次登录对吧~

                                  1 条回复 最后回复 回复 引用 1
                                  • G
                                    guizaipiao 最后由 编辑

                                    大佬,mirai-core要怎么用呢,直接引入jar包吗?

                                    cssxsh 1 条回复 最后回复 回复 引用 0
                                    • cssxsh
                                      cssxsh @guizaipiao 最后由 编辑

                                      @guizaipiao

                                      1. 这是 Mirai Console 插件,编写这个插件的原因是 Mirai Console 2.15.0-M1 还没实现相关指令,这个插件只是把扫码的api封装成指令

                                      2. Mirai Core 2.15 可以直接调用相关 api 调用扫码登录

                                      3. 相关文档自己查阅

                                      G J 2 条回复 最后回复 回复 引用 0
                                      • G
                                        guizaipiao @cssxsh 最后由 编辑

                                        @cssxsh
                                        ok,明白了,感谢大佬。

                                        1 条回复 最后回复 回复 引用 0
                                        • M
                                          ma-1ming 最后由 编辑

                                          image.png
                                          image.png

                                          1 条回复 最后回复 回复 引用 1
                                          • M
                                            ma-1ming 最后由 编辑

                                            艹,被误导了,不光是升级2.15,还要装扫码插件

                                            1 条回复 最后回复 回复 引用 0
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • First post
                                              Last post
                                            Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact