DreamVoid / MiraiMC

适用于Minecraft服务器的Mirai机器人
https://docs.miraimc.dreamvoid.me
GNU Affero General Public License v3.0
181 stars 15 forks source link

解决“Mirai 无法完成滑块验证……”的问题 #3

Closed Micalhl closed 3 years ago

Micalhl commented 3 years ago

image [19:48:25 WARN]: [DreamVoidPlugin] Plugin MiraiMC v1.1 generated an exception while executing task 24321 net.mamoe.mirai.network.UnsupportedSliderCaptchaException: Mirai 无法完成滑块验证. 使用协议 ANDROID_PHONE 强制要求滑块验证, 请更换协议后重试. 另请参阅: https://github.com/project-mirai/mirai-login-solver-selenium ANDROID_PAD & ANDROID_WATCH 均为 版本已过期 [19:48:18 WARN]: [DreamVoidPlugin] Plugin MiraiMC v1.1 generated an exception while executing task 24319 net.mamoe.mirai.network.WrongPasswordException: Error(bot=Bot(xxxxxxxxxx), code=235, title=温馨提示, message=当前版本过 低,请升级到QQ最新版本。, errorInfo= )

DreamVoid commented 3 years ago

解决方案

  1. 在Minecraft服务器的启动参数中增加一个 -Dmirai.slider.captcha.supported
  2. 打开此链接:https://github.com/project-mirai/mirai-login-solver-selenium
  3. 按照链接的方法2操作。

    注意事项

    • 实测不需要连接手机,只需要在Chrome或Chromium-based的浏览器里打开滑块验证链接,在完成滑块验证之前按下F12打开开发者工具切换到Network(网络)即可
    • 注意Minecraft服务器的启动参数不得包含 -Dmirai.no-desktop,因为在Minecraft的控制台中无法向Mirai输入任何内容,可能在以后的版本中修复。 (1.3-pre1已解决此问题)
    • Linux等系统可选择先下载mirai-console-loader登录一个机器人后将/bots/<机器人账号>/device.json文件复制到/plugins/MiraiMC/MiraiBot/bots/<机器人账号>文件夹或者在插件的配置文件中定义工作目录为mirai-console-loader的根目录 (1.3-pre1已解决此问题)
XXY233 commented 3 years ago

我使用了这个问题中的解决方案,但还是验证不通过。

[10:19:14 INFO]: [MiraiMC] 登录新的机器人账号: 743518664, 协议: ANDROID_PHONE
[10:19:14 INFO]: [MiraiMC] [ECDHInitialPublicKeyUpdater] ECDH key is invalid, start to fetch ecdh public key from server.
[10:19:15 INFO]: [MiraiMC] [ECDHInitialPublicKeyUpdater] Successfully fetched ecdh public key from server.
[10:19:15 WARN]: [MiraiMC] 当前登录的QQ(743518664)需要滑动验证码验证
[10:19:15 WARN]: [MiraiMC] 请使用手机QQ打开以下链接进行验证
[10:19:15 WARN]: [MiraiMC] https://ssl.captcha.qq.com/template/wireless_mqq_captcha.html?style=simple&aid=16&uin=743518664&sid=5557122383354621725&cap_cd=ZxHNqiYLASzeEoxbP0SaXLuK3-1h4HEAsEBTXrvqmZp36n7M4jKLhA**&clientype=1&apptype=2
[10:19:15 WARN]: [MiraiMC] 验证完成后,请输入指令 /miraiverify slidercaptcha 743518664 <ticket>
[10:19:15 WARN]: [MiraiMC] 如需取消登录,请输入指令 /miraiverify slidercaptchacancel 743518664
[10:19:15 WARN]: [MiraiMC] 如需帮助,请参阅: https://wiki.miraimc.dreamvoid.ml/troubleshoot/verify-guide#slide-captcha
> miraiverify slidercaptcha 743518664 t03ve1DBTzvEZG7t6i8zdSPssaBEmziWOMdT_ytz0BYNMuUOOxBjgiyOabugkkQsxJB-4xD0HW4SxLX4tAwFuNJSj2w8Kmn71Vio62Yf7eoueyI3JNg3BEJHJ-z19BIRsAt
[10:20:02 INFO]: 已将ticket提交到服务器
[10:20:02 WARN]: [MiraiMC] null
net.mamoe.mirai.internal.network.impl.netty.NettyChannelException: null
        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler$handlePipelineException$1.invoke(NettyNetworkHandler.kt:68) ~[MiraiMC-release.jar:?]
        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler$handlePipelineException$1.invoke(NettyNetworkHandler.kt:68) ~[MiraiMC-release.jar:?]
        at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.setStateImpl$mirai_core(NetworkHandlerSupport.kt:250) ~[MiraiMC-release.jar:?]
        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler.handlePipelineException(NettyNetworkHandler.kt:419) ~[MiraiMC-release.jar:?]
        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler$setupChannelPipeline$1.exceptionCaught(NettyNetworkHandler.kt:109) ~[MiraiMC-release.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:273) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1377) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:907) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.handleReadException(AbstractNioByteChannel.java:125) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:177) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[patched_1.17.1.jar:git-Paper-255]
        at java.lang.Thread.run(Thread.java:883) ~[?:?]
Caused by: java.net.SocketException: Connection reset
        at sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394) ~[?:?]
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426) ~[?:?]
        at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:253) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) ~[patched_1.17.1.jar:git-Paper-255]
        ... 8 more
[10:20:02 INFO]: [MiraiMC] [ECDHInitialPublicKeyUpdater] ECDH key is valid.
[10:20:02 WARN]: [MiraiMC] 当前登录的QQ(743518664)需要滑动验证码验证
[10:20:02 WARN]: [MiraiMC] 请使用手机QQ打开以下链接进行验证
[10:20:02 WARN]: [MiraiMC] https://ssl.captcha.qq.com/template/wireless_mqq_captcha.html?style=simple&aid=16&uin=743518664&sid=4077886709754851148&cap_cd=8tTDGGcGKHAuNRhYkEa-XOokXPHfsgmABbMRCGdoEfDAroZsIsH6gw**&clientype=1&apptype=2
[10:20:02 WARN]: [MiraiMC] 验证完成后,请输入指令 /miraiverify slidercaptcha 743518664 <ticket>
[10:20:02 WARN]: [MiraiMC] 如需取消登录,请输入指令 /miraiverify slidercaptchacancel 743518664
[10:20:02 WARN]: [MiraiMC] 如需帮助,请参阅: https://wiki.miraimc.dreamvoid.ml/troubleshoot/verify-guide#slide-captcha
> miraiverify slidercaptchacancel 743518664
[10:20:06 INFO]: 已取消登录验证流程
[10:20:06 WARN]: [MiraiMC] null
me.dreamvoid.miraimc.internal.MiraiLoginSolver$1: 用户终止登录
        at me.dreamvoid.miraimc.internal.MiraiLoginSolver.<init>(MiraiLoginSolver.java:34) ~[MiraiMC-release.jar:?]
        at me.dreamvoid.miraimc.api.MiraiBot$1.<init>(MiraiBot.java:195) ~[MiraiMC-release.jar:?]
        at me.dreamvoid.miraimc.api.MiraiBot.privateBotLogin(MiraiBot.java:171) ~[MiraiMC-release.jar:?]
        at me.dreamvoid.miraimc.api.MiraiBot.doBotLogin(MiraiBot.java:90) ~[MiraiMC-release.jar:?]
        at me.dreamvoid.miraimc.bukkit.CommandProcessor$1.run(CommandProcessor.java:60) ~[MiraiMC-release.jar:?]
        at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[patched_1.17.1.jar:git-Paper-255]
        at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[patched_1.17.1.jar:git-Paper-255]
        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.17.1.jar:git-Paper-255]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[?:?]
        at java.lang.Thread.run(Thread.java:883) ~[?:?]
[10:20:06 WARN]: [MiraiMC] 登录机器人时出现异常,原因: 用户终止登录
[10:20:06 INFO]: [MiraiMC] Bot cancelled: Bot closed
DreamVoid commented 3 years ago

我使用了这个问题中的解决方案,但还是验证不通过。

[10:19:14 INFO]: [MiraiMC] 登录新的机器人账号: 743518664, 协议: ANDROID_PHONE
[10:19:14 INFO]: [MiraiMC] [ECDHInitialPublicKeyUpdater] ECDH key is invalid, start to fetch ecdh public key from server.
[10:19:15 INFO]: [MiraiMC] [ECDHInitialPublicKeyUpdater] Successfully fetched ecdh public key from server.
[10:19:15 WARN]: [MiraiMC] 当前登录的QQ(743518664)需要滑动验证码验证
[10:19:15 WARN]: [MiraiMC] 请使用手机QQ打开以下链接进行验证
[10:19:15 WARN]: [MiraiMC] https://ssl.captcha.qq.com/template/wireless_mqq_captcha.html?style=simple&aid=16&uin=743518664&sid=5557122383354621725&cap_cd=ZxHNqiYLASzeEoxbP0SaXLuK3-1h4HEAsEBTXrvqmZp36n7M4jKLhA**&clientype=1&apptype=2
[10:19:15 WARN]: [MiraiMC] 验证完成后,请输入指令 /miraiverify slidercaptcha 743518664 <ticket>
[10:19:15 WARN]: [MiraiMC] 如需取消登录,请输入指令 /miraiverify slidercaptchacancel 743518664
[10:19:15 WARN]: [MiraiMC] 如需帮助,请参阅: https://wiki.miraimc.dreamvoid.ml/troubleshoot/verify-guide#slide-captcha
> miraiverify slidercaptcha 743518664 t03ve1DBTzvEZG7t6i8zdSPssaBEmziWOMdT_ytz0BYNMuUOOxBjgiyOabugkkQsxJB-4xD0HW4SxLX4tAwFuNJSj2w8Kmn71Vio62Yf7eoueyI3JNg3BEJHJ-z19BIRsAt
[10:20:02 INFO]: 已将ticket提交到服务器
[10:20:02 WARN]: [MiraiMC] null
net.mamoe.mirai.internal.network.impl.netty.NettyChannelException: null
        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler$handlePipelineException$1.invoke(NettyNetworkHandler.kt:68) ~[MiraiMC-release.jar:?]
        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler$handlePipelineException$1.invoke(NettyNetworkHandler.kt:68) ~[MiraiMC-release.jar:?]
        at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.setStateImpl$mirai_core(NetworkHandlerSupport.kt:250) ~[MiraiMC-release.jar:?]
        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler.handlePipelineException(NettyNetworkHandler.kt:419) ~[MiraiMC-release.jar:?]
        at net.mamoe.mirai.internal.network.impl.netty.NettyNetworkHandler$setupChannelPipeline$1.exceptionCaught(NettyNetworkHandler.kt:109) ~[MiraiMC-release.jar:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:273) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1377) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:302) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:281) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:907) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.handleReadException(AbstractNioByteChannel.java:125) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:177) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[patched_1.17.1.jar:git-Paper-255]
        at java.lang.Thread.run(Thread.java:883) ~[?:?]
Caused by: java.net.SocketException: Connection reset
        at sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394) ~[?:?]
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426) ~[?:?]
        at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:253) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350) ~[patched_1.17.1.jar:git-Paper-255]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) ~[patched_1.17.1.jar:git-Paper-255]
        ... 8 more
[10:20:02 INFO]: [MiraiMC] [ECDHInitialPublicKeyUpdater] ECDH key is valid.
[10:20:02 WARN]: [MiraiMC] 当前登录的QQ(743518664)需要滑动验证码验证
[10:20:02 WARN]: [MiraiMC] 请使用手机QQ打开以下链接进行验证
[10:20:02 WARN]: [MiraiMC] https://ssl.captcha.qq.com/template/wireless_mqq_captcha.html?style=simple&aid=16&uin=743518664&sid=4077886709754851148&cap_cd=8tTDGGcGKHAuNRhYkEa-XOokXPHfsgmABbMRCGdoEfDAroZsIsH6gw**&clientype=1&apptype=2
[10:20:02 WARN]: [MiraiMC] 验证完成后,请输入指令 /miraiverify slidercaptcha 743518664 <ticket>
[10:20:02 WARN]: [MiraiMC] 如需取消登录,请输入指令 /miraiverify slidercaptchacancel 743518664
[10:20:02 WARN]: [MiraiMC] 如需帮助,请参阅: https://wiki.miraimc.dreamvoid.ml/troubleshoot/verify-guide#slide-captcha
> miraiverify slidercaptchacancel 743518664
[10:20:06 INFO]: 已取消登录验证流程
[10:20:06 WARN]: [MiraiMC] null
me.dreamvoid.miraimc.internal.MiraiLoginSolver$1: 用户终止登录
        at me.dreamvoid.miraimc.internal.MiraiLoginSolver.<init>(MiraiLoginSolver.java:34) ~[MiraiMC-release.jar:?]
        at me.dreamvoid.miraimc.api.MiraiBot$1.<init>(MiraiBot.java:195) ~[MiraiMC-release.jar:?]
        at me.dreamvoid.miraimc.api.MiraiBot.privateBotLogin(MiraiBot.java:171) ~[MiraiMC-release.jar:?]
        at me.dreamvoid.miraimc.api.MiraiBot.doBotLogin(MiraiBot.java:90) ~[MiraiMC-release.jar:?]
        at me.dreamvoid.miraimc.bukkit.CommandProcessor$1.run(CommandProcessor.java:60) ~[MiraiMC-release.jar:?]
        at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[patched_1.17.1.jar:git-Paper-255]
        at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[patched_1.17.1.jar:git-Paper-255]
        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.17.1.jar:git-Paper-255]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[?:?]
        at java.lang.Thread.run(Thread.java:883) ~[?:?]
[10:20:06 WARN]: [MiraiMC] 登录机器人时出现异常,原因: 用户终止登录
[10:20:06 INFO]: [MiraiMC] Bot cancelled: Bot closed

你的网络有问题,ticket发到腾讯服务器的时候出了网络问题