MiraiForum

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

    如何使用签名服务

    使用交流
    2
    4
    941
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Z
      z.z.y 最后由 编辑

      我目前在用MCL,想要用签名服务来正常登录。目前的理解是,MCL需要装sakura插件进行扫码登录,需要装fix-protocol-version插件来与签名服务器对接。其中支持的签名服务器有两个,一个是unidbg-fetch-qsign,一个是magic-signer-guide,二者任选一个就可以了。
      我尝试配置qsign的时候出现了问题:
      1.我(似乎)正常配置了config和device等信息
      2.我可以打开go-cqhttp.bat,并且正常登录,显示好友发送的消息
      3.打开mcl的时候,似乎可以正常连接qsign的服务器:

      2023-10-03 10:16:20 I/fix-protocol-version: 当前签名服务配置信息:
      v8.9.58 by fuqiuluo/unidbg-fetch-qsign from http://127.0.0.1:13579
      

      4.在mcl中login,然后使用sakura扫码登录,报错:

      2023-10-03 10:16:47 I/Bot.xxxxxxxxxx: Bot cancelled: Bot closed
      Login failed: unidbg-fetch-qsign 服务异常, 请检查其日志, 'running'
      2023-10-03 10:16:47 E/console: xyz.cssxsh.mirai.tool.KFCStateException: unidbg-fetch-qsign 服务异常, 请检查其日志, 'running'
      xyz.cssxsh.mirai.tool.KFCStateException: unidbg-fetch-qsign 服务异常, 请检查其日志, 'running'
              at fix-protocol-version-1.12.0.mirai2.jar//xyz.cssxsh.mirai.tool.UnidbgFetchQsign.check(UnidbgFetchQsign.kt:109)
              at fix-protocol-version-1.12.0.mirai2.jar//xyz.cssxsh.mirai.tool.UnidbgFetchQsign.customEnergy(UnidbgFetchQsign.kt:137)
              at fix-protocol-version-1.12.0.mirai2.jar//xyz.cssxsh.mirai.tool.UnidbgFetchQsign.encryptTlv(UnidbgFetchQsign.kt:125)
              at net.mamoe.mirai.internal.network.protocol.packet.TlvKt.t544ForVerify(Tlv.kt:1013)
              at net.mamoe.mirai.internal.network.protocol.packet.login.wtlogin.WtLogin2$SubmitSliderCaptcha$1$1$1$1.invoke(WtLogin2.kt:35)
              at net.mamoe.mirai.internal.network.protocol.packet.login.wtlogin.WtLogin2$SubmitSliderCaptcha$1$1$1$1.invoke(WtLogin2.kt:28)
              at net.mamoe.mirai.utils.TlvMapKt._writeTlvMap(TlvMap.kt:130)
              at net.mamoe.mirai.utils.TlvMapKt._writeTlvMap$default(TlvMap.kt:123)
              at net.mamoe.mirai.internal.network.protocol.packet.login.wtlogin.WtLogin2$SubmitSliderCaptcha$1$1$1.invoke(WtLogin2.kt:28)
              at net.mamoe.mirai.internal.network.protocol.packet.login.wtlogin.WtLogin2$SubmitSliderCaptcha$1$1$1.invoke(WtLogin2.kt:25)
              at net.mamoe.mirai.internal.network.protocol.packet.EncryptMethodEcdh.makeBody(EncryptMethod.kt:121)
              at net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketKt.writeOicqRequestPacket(OutgoingPacket.kt:455)
              at net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketKt.writeOicqRequestPacket$default(OutgoingPacket.kt:448)
              at net.mamoe.mirai.internal.network.protocol.packet.login.wtlogin.WtLogin2$SubmitSliderCaptcha$1$1.invoke(WtLogin2.kt:25)
              at net.mamoe.mirai.internal.network.protocol.packet.login.wtlogin.WtLogin2$SubmitSliderCaptcha$1$1.invoke(WtLogin2.kt:24)
              at net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketKt.writeSsoPacket(OutgoingPacket.kt:985)
              at net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketKt.writeSsoPacket$default(OutgoingPacket.kt:352)
              at net.mamoe.mirai.internal.network.protocol.packet.login.wtlogin.WtLogin2$SubmitSliderCaptcha$1.invoke(WtLogin2.kt:24)
              at net.mamoe.mirai.internal.network.protocol.packet.login.wtlogin.WtLogin2$SubmitSliderCaptcha$1.invoke(WtLogin2.kt:23)
              at net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketKt.buildLoginOutgoingPacket(OutgoingPacket.kt:310)
              at net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketKt.buildLoginOutgoingPacket$default(OutgoingPacket.kt:278)
              at net.mamoe.mirai.internal.network.protocol.packet.login.wtlogin.WtLogin2.SubmitSliderCaptcha(WtLogin2.kt:23)
              at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl.doLogin(SsoProcessor.kt:472)
              at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl$doLogin$1.invokeSuspend(SsoProcessor.kt)
              at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
              at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
              at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
              at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
              at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
              at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
      
      2023-10-03 10:18:47 W/io.netty.channel.DefaultChannelPipeline: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
      io.netty.handler.timeout.ReadTimeoutException
      

      请问我应该如何解决呢?
      顺便想问,官方可以出一个稍微易懂的教程吗,或者有没有人做一个...感觉我肯定是哪里配置有问题...

      1 条回复 最后回复 回复 引用 0
      • Z
        z.z.y 最后由 编辑

        我已解决,顺便写一个教程吧。。。之后发上来

        Z 1 条回复 最后回复 回复 引用 0
        • Z
          z.z.y @z.z.y 最后由 编辑

          【以unidbg-fetch-qsign为例】

          说明

          1.有任何关于登录问题,官方会有说明(应该是官方的吧),请及时查看最新的通知:https://mirai.mamoe.net/topic/223/无法登录的临时处理方案
          2.以下内容根据当前(2023.10.3)的情况,不对后续任何更改负责,谢谢理解!!
          3.我只使用MCL,Mirai Core的用户请酌情参考

          如何使用

          1.确保下载了MCL,并且安装fix-protocal-version和mirai-login-solver-sakura插件。
          (注:插件安装方式为:在release那里下载jar包,然后直接放到plugins文件夹中,重启mcl就行)

          2.下载并安装unidbg-fetch-qsign服务,并且启动

          • 2.1:建议按照官方wiki的提示进行部署,我选择的是windows下一键部署
          • 2.2:在上述的windows下一键部署中,请按照这个来操作。注意,由于我们使用的是mcl,而不是cq(cq好像是另一个机器人平台),因此需要删除go-cqhttp.bat和go-cqhttp.exe,并且直接运行Start_Qsign.bat(以下简称为qsign)
          • 2.3:在运行qsign的时候,需要指定版本、地址、端口和key,其中“版本”需要选择fix-protocal-version所支持的。(例如,截止目前,好像支持的最高版本是8.9.63,好像可以在“无法登陆的临时处理方案”或者fix-protocal-version的仓库中看到。在运行mcl的时候,会显示当前的版本,如果需要更新版本的话,请参考fix-protocal-version的README)
          • 如果顺利的话,qsign可以成功启动并且开启服务

          3.使用mcl连接qsign服务

          • 编辑KFCFactory.json。请注意,由于我选择的是8.9.63,并且是unidbg-fetch-qsign,所以我的json文件内容是(请你自己根据自己的需要进行编辑):
          {
              "8.9.63": {
                  "base_url": "http://127.0.0.1:13579",
                  "type": "fuqiuluo/unidbg-fetch-qsign",
                  "key": "1145141919810"
              }
          }
          
          • 重启mcl,此时应当看到类似这样的信息
          2023-10-03 11:02:18 I/fix-protocol-version: 当前各登录协议版本日期:
          ANDROID_PHONE  8.9.63.11390  2023-05-26T10:46:18+08:00
          ANDROID_PAD    8.9.63.11390  2023-05-26T10:46:18+08:00
          ANDROID_WATCH  2.0.8         2019-06-03T20:25:31+08:00
          IPAD           8.9.50.611    2023-02-16T15:10:14+08:00
          MACOS          6.8.2.21241   2022-03-14T11:11:35+08:00
          
          2023-10-03 11:02:18 I/fix-protocol-version: 当前签名服务配置信息:
          v8.9.63 by fuqiuluo/unidbg-fetch-qsign from http://127.0.0.1:13579
          

          其中“当前签名服务配置信息”表示可以正常连接,如果不能的话会有其他的信息显示

          4.登录QQ

          • 似乎有人建议不要使用自动登录,所以建议每次都直接使用login命令来登录。注意,login后面的所有参数都需要加:
          login <QQ> <密码> <登录方式>
          
          • 然后使用sakura那个扫码登录就好啦!!!

          祝大家顺利登录!!

          1 条回复 最后回复 回复 引用 2
          • T
            toxicmagiska 最后由 编辑

            各个项目的 readme.md 讲得已经很详细,再不明白那就没必要使用了。。

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