simple-robot / simpler-robot

Simple Robot,一个bot风格的Kotlin多平台事件调度框架,异步高效、Java友好!/ A Bot-style Kotlin Multiplatform event scheduling framework, asynchronous and high-performance, java-friendly! 🐱😼😻😸
https://simbot.forte.love
GNU Lesser General Public License v3.0
512 stars 44 forks source link

code=238, title=禁止登录, message=请使用手Q扫描二维码或短信登录。 #614

Closed Teylusu closed 6 months ago

Teylusu commented 1 year ago

版本号

3.0.0-RC.3

附加版本

No response

涉及的编程语言

Java

项目构建工具

Maven

涉及的组件库

mirai (QQ)

问题描述

Caused by: net.mamoe.mirai.network.WrongPasswordException: Error(bot=Bot(*****), code=238, title=禁止登录, message=请使用手Q扫描二维码或短信登录。, errorInfo=) at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl.doLogin(SsoProcessor.kt:331) ~[mirai-core-jvm-2.14.0.jar!/:2.14.0] at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl$doLogin$1.invokeSuspend(SsoProcessor.kt) ~[mirai-core-jvm-2.14.0.jar!/:2.14.0] at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlin-stdlib-1.6.21.jar!/:1.6.21-release-334(1.6.21)] ... 8 common frames omitted

复现方式

禁止登陆

相关日志

No response

其他补充

No response

ForteScarlet commented 1 year ago

https://github.com/mamoe/mirai/issues/2552

可能是新出现的风控类型。等待并关注mirai社区的相关问题

ElementQi commented 1 year ago

上面说的应该是协议是ANDROID_WATCH的情况,我把它再换成ANDROID_PAD话(PHONE也一样),出现了以下情况

2023-03-08 00:52:22 I/main: Auto-login 7*******8, protocol: ANDROID_PAD, heartbeatStrategy: STAT_HB
2023-03-08 00:52:26 E/main: net.mamoe.mirai.network.WrongPasswordException: Error(bot=Bot(7*******8), code=235, title=温馨提示, message=当前QQ版本过低,请升级至最新版本后再登录。点击进入下载页面, errorInfo=)
net.mamoe.mirai.network.WrongPasswordException: Error(bot=Bot(7*******8), code=235, title=温馨提示, message=当前QQ版本过低,请升级至最新版本后再登录。点击进入下载页面, errorInfo=)
    at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl.doLogin(SsoProcessor.kt:331)
    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.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
    at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
    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)

这个情况就是我之前在win10PC上登录的时候遇见的,版本太低了(但是用大号能登录,但是小号就不行,一登录就提示我版本过低,什么代码00020之类的,记不清楚了),然后更新了一下版本就可以登录了。

我猜测应mirai社区应该需要更新一下这些qq登录设备protocol的版本?(本人不太了解)

Enderman-Teleporting commented 1 year ago

我设置的protocol是MACOS,出现了“网络不稳定”的问题

ForteScarlet commented 1 year ago

参考 discussions#108

IceOfSummer commented 1 year ago

从release里面下jar包丢项目里面:https://github.com/cssxsh/fix-protocol-version/tree/main

然后主类这样配置:

import xyz.cssxsh.mirai.tool.FixProtocolVersion

fun main(args: Array<String>) {
    FixProtocolVersion.update()
    val application = runApplication<QQBotApplication>(*args)
}

我用的MACOS协议,能登录上去

112292454 commented 1 year ago

从release里面下jar包丢项目里面:https://github.com/cssxsh/fix-protocol-version/tree/main

然后主类这样配置:

import xyz.cssxsh.mirai.tool.FixProtocolVersion

fun main(args: Array<String>) {
    FixProtocolVersion.update()
    val application = runApplication<QQBotApplication>(*args)
}

我用的MACOS协议,能登录上去

刚把各种协议和device换了一轮 45 237 235 238都见了个遍,这个macos的报45,换成大号也报238,按理说大号应该没风控不会有这个啊...已经在考虑开个新号试试了(

watch的协议用这个获取device的软件,能扫码登陆上,似乎挺有希望的 MrXiaoM/Aoki

看着好像mirai最近的2.15有扫码的方式?simbot-component-mirai写的对应mirai还是2.14,不知道这里的能不能更新扫码方式的支持看有没有救

(另外v3.0.0.0-beta.6之后版本在阿里云的maven上面就没有了 有点寄)

ForteScarlet commented 1 year ago

@112292454 mirai的2.15正式发布后这边才会更新,以及不要用阿里云的maven仓库,直接用中央仓库。