LLOneBot 对接 NoneBot2 OneBot 适配器时消息事件上报问题解析

LLOneBot 对接 NoneBot2 OneBot 适配器时消息事件上报问题解析

【免费下载链接】LLOneBot 使你的NTQQ支持OneBot11协议进行QQ机器人开发 【免费下载链接】LLOneBot 项目地址: https://gitcode.com/gh_mirrors/ll/LLOneBot

问题背景

在使用 LLOneBot 插件对接 NoneBot2 的 OneBot 适配器时,开发者遇到了消息事件上报失败的问题。经过分析发现,这是由于上报数据中缺少了 raw_message 和 font 两个必填字段导致的。

技术分析

OneBot 协议规范要求

根据 OneBot v11 协议规范,群消息事件数据中必须包含 raw_message 和 font 字段。其中:

  • raw_message 字段原本用于存储 CQ 码格式的原始消息
  • font 字段用于标识消息字体样式

实际对接中的问题表现

在对接过程中,NoneBot2 的 OneBot 适配器会严格校验这些必填字段。当 LLOneBot 最初版本未包含这些字段时,会导致消息事件上报失败。

解决方案

经过测试验证,解决方案如下:

  1. 对于 raw_message 字段:

    • 由于 CQ 码已过时,且 QQNT 使用新的消息格式
    • 暂时填充空字符串,不影响消息解析
    • 后续可考虑支持 CQ 码转换(如有需求)
  2. 对于 font 字段:

    • 由于 QQNT 中所有用户字体样式相同
    • 固定填充值为 0

配置建议

对于希望使用 LLOneBot 对接 NoneBot2 的开发者,建议采用以下配置:

NoneBot2 配置

PORT=5000  # NoneBot2 监听端口
driver=~fastapi+~httpx+~websockets
ONEBOT_API_ROOTS={"QQ号码": "http://127.0.0.1:3000/"}

LLOneBot 配置

  • 监听端口:3000
  • 事件上报地址:http://127.0.0.1:5000/onebot/v11/

常见问题排查

如果对接不成功,可以按照以下步骤排查:

  1. 检查配置文件

    • 确认 QQNT 安装目录下的 LLOneBot 配置是否正确
    • 删除多余的 config_*.json 文件
  2. 检查服务状态

    • 确保 QQNT 已正常登录
    • 确认 LLOneBot 监听服务已启动
  3. 检查消息上报

    • 在 QQNT 命令行界面查看是否有上报日志
    • 在 NoneBot2 控制台查看是否收到事件
  4. 网络配置检查

    • 确保 NoneBot2 和 LLOneBot 使用相同的 IP 地址
    • 单机测试建议使用 127.0.0.1
    • 跨机测试需要使用局域网 IP

总结

LLOneBot 在 v2.0.2 版本中已修复了消息上报字段缺失的问题。开发者现在可以正常对接 NoneBot2 的 OneBot 适配器。虽然 raw_message 字段目前为空,但这不会影响基本的消息解析和处理功能。未来如有需要,可以考虑增加对 CQ 码格式的支持。

【免费下载链接】LLOneBot 使你的NTQQ支持OneBot11协议进行QQ机器人开发 【免费下载链接】LLOneBot 项目地址: https://gitcode.com/gh_mirrors/ll/LLOneBot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值