搜索
切换搜索
切换菜单
切换个人菜单
欢迎来到小可 · Wiki,人人可编辑的,多平台聊天机器人“小可”的官方文档资源。
小可很可爱,请
给我们打钱
。
原 MkDocs 已迁入本站。若发现 404 属正常现象,请点击左上角搜索您想要的模块。
查看“自搭建指南/QQ”的源代码
来自小可 · Wiki,人人可编辑的,QQ机器人“小可”的官方文档资源
阅读
查看源代码
查看历史
页面
讨论
更多操作
←
自搭建指南/QQ
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
本文将包含你将机器人连接 QQ 平台时所需要了解的内容。 == 说明 == 目前,大多数群聊中的 QQ 机器人都采用“伪用户”方式,即通过第三方软件接入已注册的 QQ 账号。从 QQ 官方的角度来看,这些软件属于“外挂软件”,QQ 官方对此类实现采取了各种技术和非技术手段进行打击。 QQ 官方会监测账号行为以区分正常用户和机器人,例如检测异常登录方式或频繁的多地区登录等。虽然具体的检测细节未知,但已经确认的是,当 QQ 账号被识别为机器人时,可能会面临警告、封禁,甚至临时或'''永久冻结'''的处罚。 虽然不同方案之间存在较大差异(例如基于 Android QQ 协议的 [[#Go-cqhttp|Go-cqhttp]] 已基本无法使用,而基于 NTQQ 协议的 [[#Lagrange|Lagrange]] 和 [[#LLOneBot|LLOneBot]] 方案则较为稳定),但请注意,这些方案均由第三方软件社区提供,并不受到官方支持。 因此,是否在 QQ 平台上搭建非官方机器人需要谨慎考虑。同时,第三方方案的可用性可能会随时间变化,无法提供任何保证。在 QQ 平台上选择使用何种方案取决于个人意愿。 == LLOneBot == [https://github.com/LLOneBot/LLOneBot LLOneBot] 是 Liteloader 的插件之一,可以使 NTQQ 支持 OneBot11 协议进行 QQ 机器人开发。 [https://github.com/LiteLoaderQQNT/LiteLoaderQQNT LiteLoaderQQNT](LiteLoader)是 NTQQ 的插件加载器,允许通过插件注入 QQ 实现某些特定的功能。 === 安装 === 请参考[https://llonebot.github.io/zh-CN/guide/getting-started 官方文档]中的说明进行插件的安装。 === 配置 === 请在机器人配置文件填写以下配置项: :<code>qq_host = "127.0.0.1:11451"</code> - 将会在填写的 IP 地址和端口中开启一个 Websocket 服务器,用于 LLOnebot 反向连接。 :<code>qq_account =</code> - 机器人的 QQ 号。 :<code>use_llonebot = true</code> - 告诉机器人正在使用 LLOneBot,以处理兼容性问题。 安装 LLOneBot 完成后重新登录 QQ,进入 LLOneBot 的设置页。 打开“启用反向 Websocket 服务”,点击下方的“添加”,并添加好反向 Websocket 监听地址。在示例中为 <code>ws://127.0.0.1:11451/ws</code>,注意不要删去后面的 <code>/ws</code>。 将“新消息上报格式类型”更改为“CQ 码”。 关闭设置窗口,确认配置文件保存。 == OpenShamrock == [https://github.com/whitechi73/OpenShamrock OpenShamrock] 是基于 Xposed 实现的 QQ 机器人框架,你可以在 Android 手机/模拟器中使用 OpenShamrock 运行机器人。 {{Mbox | text = 2024 年 4 月 2 日,OpenShamrock 开发组于 [https://github.com/whitechi73/OpenShamrock/discussions/272#discussion-6300354 Discussion#272] 宣布,OpenShamrock 将会从 <code>1.1.0</code> 版本起弃用 OneBot V11 支持,迁移至新的 [https://github.com/KarinJS/kritor Kritor] 协议。<br>这意味着 1.1.0 及之后版本的 OpenShamrock 将不再支持 OneBot V11,以下内容也不再适用。请仔细辨别,以免带来不必要的麻烦。 | type = danger }} {{Mbox | text = 此方式需要一定的安卓(Android)的使用基础,可能需要对 Root、命令行等有一定了解。 | type = warning }} === 安装 === 请参考[https://whitechi73.github.io/OpenShamrock 官方文档]中的说明进行框架的安装。 === 配置 === 请在机器人配置文件填写以下配置项: :<code>qq_host = "127.0.0.1:11451"</code> - 将会在填写的 IP 地址和端口中开启一个 Websocket 服务器,用于 LLOnebot 反向连接。 :<code>qq_account =</code> - 机器人的 QQ 号。 :<code>use_shamrock = true</code> - 告诉机器人正在使用 OpenShamrock,以处理兼容性问题。 安装 OpenShamrock 完成后,请配置以下选项: 打开“消息格式为 CQ 码”和“被动 WebSocket”,并添加好被动 Websocket 监听地址。在示例中为 <code>ws://127.0.0.1:11451/ws</code>,注意不要删去后面的 <code>/ws</code>。 强制杀死 QQ 进程并重新启动 QQ 来应用 OpenShamrock 配置文件。 == Go-cqhttp == [https://github.com/Mrs4s/go-cqhttp Go-cqhttp] 是基于 [https://github.com/mamoe/mirai Mirai] 以及 [https://github.com/Mrs4s/MiraiGo MiraiGo] 的 OneBot Golang 原生实现。 Mirai 是一个在全平台下运行,提供 QQ Android 协议支持的高效率机器人库。 一个新注册的 QQ 账号仅需完成基础配置即可,为了避免在机器人使用后期时遇到 Code45 等问题,建议配置使用签名服务器。 {{Mbox | text = 根据 Go-cqhttp 储存库的消息(见 [https://github.com/Mrs4s/go-cqhttp/issues/2471 go-cqhttp/issue#2471]),开发者已无力继续维护此项目。<br>在未来 qsign 签名服务彻底被官方封死之后,Go-cqhttp 将无法继续使用,请窒息。 | type = danger }} {{Mbox | text = 由于 QQ 官方的持续检测,使用 Go-cqhttp 连接的成功率越来越低。即使成功连接,也可能面临频繁冻结等情况。不推荐任何用户再使用此方案连接 QQ 平台。 | type = danger }} === 基础配置 === 如果你想使用 Docker 部署 go-cqhttp,请转到[https://docs.go-cqhttp.org/guide/docker.html 使用 Docker]。 从 go-cqhttp 的官方仓库上下载最新的 [https://github.com/Mrs4s/go-cqhttp/releases/latest Release]。 {| class="wikitable" |- ! 系统类型 !! 可执行文件 !! 压缩文件 |- | Intel 版 Macos || N/A || <code>go-cqhttp_darwin_amd64.tar.gz</code> |- | M1 版 Macos || N/A || <code>go-cqhttp_darwin_arm64.tar.gz</code> |- | 32 位 Linux || N/A || <code>go-cqhttp_linux_386.tar.gz</code> |- | 64 位 Linux || N/A || <code>go-cqhttp_linux_amd64.tar.gz</code> |- | arm64 Linux || N/A || <code>go-cqhttp_linux_arm64.tar.gz</code> |- | armv7 Linux || N/A || <code>go-cqhttp_linux_armv7.tar.gz</code> |- | 32 位 Windows || <code>go-cqhttp_windows_386.exe</code> || <code>go-cqhttp_windows_386.zip</code> |- | 64 位 Windows || <code>go-cqhttp_windows_amd64.exe</code> || <code>go-cqhttp_windows_amd64.zip</code> |- | arm64 Windows || <code>go-cqhttp_windows_arm64.exe</code> || <code>go-cqhttp_windows_arm64.zip</code> |- | armv7 Windows || <code>go-cqhttp_windows_armv7.exe</code> || <code>go-cqhttp_windows_armv7.zip</code> |} 解压下载好的文件到一个已经预先准备好的文件夹中。 运行 Go-cqhttp。此时将提示: <pre> [WARNING]: 尝试加载配置文件 config.yaml 失败: 文件不存在。 [INFO]: 默认配置文件已生成,请编辑 config.yaml 后重启程序。 </pre> 程序将会自动在存放 Go-cqhttp 文件夹的目录下生成一个默认配置文件 <code>config.yaml</code>。请填写好配置文件中的 QQ 账号和密码。 请在机器人配置文件填写以下配置项: :<code>qq_host = "127.0.0.1:11451"</code> - 将会在填写的 IP 地址和端口中开启一个 Websocket 服务器,用于 Go-cqhttp 反向连接。 :<code>qq_account =</code> - 机器人的 QQ 号。 接下来,请在 Go-cqhttp 的配置文件中设置对应的连接方式。 <syntaxhighlight lang=yaml> ... # 连接服务列表 servers: # 添加方式,同一连接方式可添加多个,具体配置说明请查看文档 #- http: # http 通信 #- ws: # 正向 Websocket #- ws-reverse: # 反向 Websocket #- pprof: # 性能分析服务器 - ws-reverse: universal: ws://127.0.0.1:11451/ws # 此处填写先前的 IP 地址和端口,注意不要删去后面的 /ws reconnect-interval: 3000 middlewares: <<: *default # 引用默认中间件 ... ... </syntaxhighlight> {{Mbox | text = 若在配置中遇到问题,请参见 [https://docs.go-cqhttp.org Go-cqhttp 官方文档]。 | type = note }} === 使用签名服务 === {{Mbox | text = 原 qsign 作者已因'''不可抗力'''无法再维护此项目,对应原代码仓库也已删除,该方法会在未来逐渐失效,请做好预期准备。 | type = danger }} 部署签名服务,即使用开源签名服务 ''[https://github.com/fuqiuluo/unidbg-fetch-qsign <s>qsign</s>]'',是目前用来绕过检测的最有效手段。 你可以使用别人搭好的 qsign 服务,也可以自己在本地搭建一个: {{Mbox | text = 如果你的动手能力足够强或者有足够的电脑知识,'''强烈推荐'''自己搭建本地签名服务器。 使用他人的签名服务可能会泄漏以下信息: * 登录账号 * 登录时间 * 登录后发送的消息内容 * 登录后发送消息的群号/好友 ID 不会泄露的信息: * 账号密码 * 账号 session * 群列表/好友列表 * 接收的消息 * 除发送消息外的任何历史记录 使用共享签名服务可能会提高账号被冻结的概率。 | type = warning }} 自行安装 JRE 17(Java Runtime Environment 17),请善用搜索引擎查找安装方法。 在 ''[https://github.com/fuqiuluo/unidbg-fetch-qsign <s>unidbg-fetch-qsign</s>]''的 Release 界面中下载最新版本,并解压到一个提前准备好的文件夹中。 删除与 go-cqhttp 同级目录下的 <code>data</code> 文件夹和 <code>device.json</code> 文件。 在存放 unidbg-fetch-qsign 的文件夹中,运行以下命令: <syntaxhighlight lang=sh> bin/unidbg-fetch-qsign --basePath=txlib/<你要使用的版本> </syntaxhighlight> 请替换 <code><你要使用的版本></code> 字段为在存放 qsign 的文件夹 <code>txlib</code> 目录存在的版本。例:<code>--basePath=txlib/8.9.73</code> {{Mbox | text = 在选择版本时,应当遵从以下原则:<br>升级版本应当'''一个一个版本'''升,以后冻结了可能就没机会回退版本了。发生 Code45 应当先尝试删除 go-cqhttp 的 <code>device.json</code> 文件和 <code>data\cache</code> 文件夹并重新登录,而不是第一时间升级版本。 | type = important }} 接下来,请配置 Go-cqhttp 的配置文件中的签名服务器部分: <syntaxhighlight lang=yaml> account: # 账号相关 # 数据包的签名服务器列表,第一个作为主签名服务器,后续作为备用 sign-servers: - url: 'http://127.0.0.1:8080' # 主签名服务器地址,必填 key: '114514' # 签名服务器所需要的 apikey, 如果签名服务器的版本在1.1.0及以下则此项无效 authorization: '-' # authorization 内容, 依服务端设置,如 'Bearer xxxx' ... ... ... </syntaxhighlight> 运行 go-cqhttp 以生成设备文件。 下载对应版本的[https://github.com/MrXiaoM/qsign/blob/mirai/txlib/ 安卓手机协议]并将其重命名为 <code>1.json</code>。将该文件储存在与 Go-cqhttp 同一目录下的 <code>data\versions</code> 文件夹中。 在与 go-cqhttp 同一目录下的 `device.json` 文件夹中,并修改以下字段: <syntaxhighlight lang=json> { "protocol": 1 } </syntaxhighlight> 重启 go-cqhttp 来应用最终配置。
本页使用的模板:
Template:Mbox
(
查看源代码
)
Template:Mbox/config
(
查看源代码
)
返回
自搭建指南/QQ
。
Cookie帮助我们提供我们的服务。通过使用我们的服务,您同意我们使用cookie。
更多信息
确定