ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

10分钟跑通OpenShamrock:如何在安卓手机上搭一个OneBot 11的QQ机器人

10分钟跑通OpenShamrock:如何在安卓手机上搭一个OneBot 11的QQ机器人 10分钟跑通OpenShamrock如何在安卓手机上搭一个OneBot 11的QQ机器人【免费下载链接】OpenShamrockA Bot Framework based on Xposed with OneBot11项目地址: https://gitcode.com/gh_mirrors/op/OpenShamrock想要一个 QQ 机器人却发现 go-cqhttp 早已停止维护纯协议实现又时刻担心账号安全。OpenShamrock 是一个基于 XposedLSPosed实现的 QQ 机器人框架它直接运行在你手机上的 QQ 进程里并对外提供 OneBot 11/12 标准的 WebSocket 接口——你现有的 OneBot 代码通常不用改动把连接地址换成手机上的地址就能接上。它不是一台独立的协议服务器而是一个 Xposed 模块QQ 正常登录、正常聊天Shamrock 在进程内部监听消息、执行 API 调用再把事件推送给你的机器人程序。本文按拿到→跑起来→看懂→排坑的顺序讲解照着做即可。 OpenShamrock 项目快照10 秒看清它是什么一句话定位OpenShamrock 是基于 LSPosedNon-Riru实现 Kritor 标准的 OneBot 11/12 QQ 机器人框架。项目说明它是什么Xposed 模块形式的 QQ 机器人框架实现 OneBot 11/12 标准技术栈Kotlin Xposed内置 KSP 代码生成与 Silk 语音解码 C 源码运行环境已 root 的安卓设备 LSPosedQQ 9.0.70 及以上TIM 也可挂载对外接口正向 WebSocket默认 5700 端口、反向 WebSocket均支持鉴权 token模块划分app配置应用、xposed核心、qqinterface 与 protobuf接口/协议定义、processor代码生成许可证GPL-3.0拿到 OpenShamrock 后如何最快跑起来装好模块优先从官方 Release 下载 APK想自己编译的话先克隆仓库git clone https://gitcode.com/gh_mirrors/op/OpenShamrock再用 Android Studio 构建。配置 LSPosed设备已 root 并装好 LSPosed 后在 LSPosed 管理器中启用 Shamrock 模块作用域同时勾选QQ和系统。效果QQ 启动时模块完成挂载系统是保活机制需要的不能漏。启动并挂载把 QQ 升到 9.0.70 以上重新登录。效果模块在 QQ 主进程内启动服务日志里能看到初始化记录。配置连接方式打开 Shamrock 应用或默认配置文件二选一打开正向active_rpctrue端口 5700或反向passive_rpc连接并填上鉴权 tokenactive_ticket。效果手机侧开始按你指定的方式暴露 OneBot 接口。接入机器人把你现有的 OneBot 客户端如 NoneBot的 ws 地址指向手机IP:5700。效果发一条测试消息事件推送和发 API 都通了即算跑通。它是怎么工作的一个寄生在 QQ 进程里的前台接线员把它理解成坐在 QQ 前台的接线员。QQ 收到一条新消息相当于电话铃响了入口类 XposedEntry 在 QQ 启动流程上挂了分机铃响时先让接线员听一遍把内容整理成标准事件转给你的机器人机器人要回话时接线员再替你把电话拨回去。具体分工分三层。第一层是 xposed 核心模块xposed/actions 目录里是一批启动动作比如 Hook 系统框架防止息屏杀进程KeepAlive、拉取远端配置、平板模式等负责活着这件事。第二层是接口与协议qqinterface 里是 QQ 内部类的接口定义protobuf 是与 QQ 服务器通信的数据结构定义processor 模块在编译期用 KSP 从这些定义批量生成代码避免手写样板。第三层是 API 服务kritor/service 下的 MessageService、GroupService、FriendService 等就是你调用的接口消息的格式转换管道在 qq/service/msg负责把 QQ 内部的消息对象转成 OneBot 标准格式。三个真实用例迁移旧机器人、自动管群、收语音消息用例一迁移 go-cqhttp 旧机器人兼容性场景手上已有一套按 go-cqhttp 写的 OneBot 11 机器人旧实现没人维护了。能做什么项目本身就是按 go-cqhttp 的文档开发的README 明确写了一键移植把旧机器人的 ws 地址指到手机上即可也支持与别的协议实现平行部署。注意什么手机要长期在线且网络可达息屏不能断服务这正是模块要 Hook 系统框架的原因鉴权 token 两侧必须一致。用例二群管理自动化API 能力场景几百人的群人工审入群申请、发公告、处理禁言太累。能做什么通过 GroupService 等接口自动审核入群申请、发群公告、管理群成员权限服务层按消息、好友、群、文件划分写业务时找接口很直接。注意什么机器人账号自身要有对应权限比如群管理员权限不足的 API 调用会直接失败。用例三接收并解码语音消息媒体处理场景希望机器人能处理用户发的语音而不是只回一句我不听语音。能做什么仓库内置了完整的 Silk 编解码 C 源码app/src/main/cpp/src/语音解码是它的原生能力配合文档的语音支持部分配置后机器人可以解码并转写处理语音。注意什么语音支持有额外的配置步骤不是装完即生效仓库里的 AudioLibrary 压缩包对应不同 CPU 架构别用错。 OpenShamrock 常见坑与排查现象→原因→怎么办现象QQ 能正常用但模块完全不生效。原因QQ 低于 9.0.70官方明确低版本不再修复。怎么办升级到 9.0.70 以上别在低版本上反复试。现象连接正常息屏或放后台一阵子后机器人掉线。原因作用域只勾了 QQ保活依赖的系统范围没加进程被系统回收。怎么办在 LSPosed 中把模块作用域补上系统并授予对应权限。现象机器人程序一连就被断开或拒绝。原因鉴权 token 为空或客户端 token 与手机侧active_ticket不一致。怎么办两侧配置同一个 token保存后重启 QQ 让配置生效。现象5700 端口没有监听。原因正向 RPC 默认是关闭的active_rpc默认为 false或者端口被占用。怎么办打开active_rpc或把rpc_port改成空闲端口客户端同步改。现象担心对账号有风险。原因历史上基于 Riru 的方案出过封号问题。怎么办按项目说明选用 LSPosedNon-Rilu路线并用专门的副号跑机器人别用主号。该不该选 OpenShamrock一句话选型建议它适合手里有已 root 安卓设备、想拿真实 QQ 跑 OneBot 11 机器人、又不想维护协议服务器的人不适合不想碰 root、需要部署在 PC/服务器或追求高并发稳定运行的场景那些情况纯协议方案更合适。另外 README 声明本项目以学习交流与研究 Xposed 为主商业或大规模部署前请自行评估合规与账号风险。官方仓库入口https://gitcode.com/gh_mirrors/op/OpenShamrock【免费下载链接】OpenShamrockA Bot Framework based on Xposed with OneBot11项目地址: https://gitcode.com/gh_mirrors/op/OpenShamrock创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表