-
-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
启动项目报错,疑似QQ组件库问题或其他 #929
Comments
看一下你的配置文件(记得隐藏敏感信息),在 simple-robot/simbot-component-qq-guild#163 中(大概从QQ组件的 v4.0.0-beta6 开始)迁移到了官方文档内推荐的新的鉴权方式,这种方式要求配置 appId 和 secret 而不再要求 |
以及可以开启 |
{
"component": "simbot.qqguild",
"ticket": {
"appId": "********",
"secret": "",
"token": "****************"
},
"config": {
"serverUrl": "SANDBOX",
"intents": {
"type": "raw",
"intents": 1073741827
}
}
} |
配置上 |
!添加secret后没事了,非常感谢—— |
是否会提供贡献?
否
版本号
4.6.0
附加版本
使用IDEA创建Spring Boot项目,将依赖更新到最新版本(核心:4.6.0。QQ组件库:4.0.0。Ktor:2.3.12。)。
安装后立刻启动,无异常。使用@EnableSimbot注释启动类,启动后报错。
经测试,疑似QQ组件库问题。代码以及报错内容在下方写到。
测试组合:
----核心------QQ组件库--Ktor-----结果
4.0.0-dev18--4.0.0-dev8--2.3.8----正常
---4.6.0------4.0.0-dev8--2.3.8----正常
---4.6.0------4.0.0-dev8--2.3.12---正常
---4.6.0---------4.0.0-----2.3.12---报错
涉及的编程语言
Java
项目构建工具
Maven
涉及的组件库
QQ机器人
问题描述
pom.xml内容:
补全机器人配置文件,直接运行结果:
在启动类前加入@EnableSimbot注释:
启动项目,运行报错:
为方便阅读,我将报错内容分割以方便滑动。
复现方式
无
相关日志
No response
其他补充
我有以前旧版本框架下的机器人,运行正常,在备份后更新版本,结果仍然报错。
我将报错内容询问过AI,不知以下内容是否有帮助:
据您提供的错误日志,问题出在 love.forte.simbot.qguild.QQGuildResultSerializationException,这表明在反序列化 QQ 公会 API 的响应时失败了。具体来说,Fields [access_token, expires_in] are required for type with serial name 'love.forte.simbot.qguild.api.app.AppAccessToken', but they were missing at path: $ 指出了在尝试将响应解析为 AppAccessToken 类型时,必要的字段 access_token 和 expires_in 缺失了 。
这个问题可能是由于 API 响应的格式与预期不匹配导致的。解决这个问题,您可能需要:
1.检查 API 的响应确保所有必要的字段都存在。
2.确认您的 AppAccessToken 类型是否正确地映射了这些字段。
3.如果 API 响应格式有更新,您可能需要更新您的代码以匹配新的格式。
另外,从日志中可以看到应用程序因为异常而被取消启动,这通常是因为在 Spring Boot 应用程序中,@async 异步任务抛出了未捕获的异常。Spring Boot 默认的 SimpleAsyncTaskExecutor 线程池会捕获并记录异常,但不会传播异常,导致应用程序启动流程中无法感知到这些异常。您可以通过自定义线程池并设置 setRejectedExecutionHandler 来处理这种异常传播问题 。
最后,您可能需要查看 kotlinx.serialization 文档来确保您的序列化和反序列化逻辑正确无误 。
如果您需要进一步的帮助来解决这个问题,您可以查看相关的社区讨论或文档
The text was updated successfully, but these errors were encountered: