本文将包含你将机器人连接 QQ 平台时所需要了解的内容。
说明
目前,大多数群聊中的 QQ 机器人都采用“伪用户”方式,即通过第三方软件接入已注册的 QQ 账号。从 QQ 官方的角度来看,这些软件属于“外挂软件”,QQ 官方对此类实现采取了各种技术和非技术手段进行打击。
QQ 官方会监测账号行为以区分正常用户和机器人,例如检测异常登录方式或频繁的多地区登录等。虽然具体的检测细节未知,但已经确认的是,当 QQ 账号被识别为机器人时,可能会面临警告、封禁,甚至临时或永久冻结的处罚。
虽然不同方案之间存在较大差异(例如基于 Android QQ 协议的 Go-Cqhttp 已基本无法使用,而基于 NTQQ 协议的 Lagrange 和 LLOneBot 方案则较为稳定),但请注意,这些方案均由社区第三方软件提供,并不受到官方支持。
因此,是否在 QQ 平台上搭建非官方机器人需要谨慎考虑。同时,第三方方案的可用性可能会随时间变化,无法提供任何保证。在 QQ 平台上选择使用何种方案取决于个人意愿。
LLOneBot
LLOneBot 是 Liteloader 的插件之一,可以使 NTQQ 支持 OneBot11 协议进行 QQ 机器人开发。
LiteLoaderQQNT(LiteLoader)是 NTQQ 的插件加载器,允许通过插件注入 QQ 实现某些特定的功能。
安装
请参考官方文档中的说明进行插件的安装。
配置
请在机器人配置文件填写以下配置项:
qq_host = "127.0.0.1:11451"
- 将会在填写的 IP 地址和端口中开启一个 Websocket 服务器,用于 LLOnebot 反向连接。qq_account =
- 机器人的 QQ 号。use_llonebot = true
- 告诉机器人正在使用 LLOneBot,以处理兼容性问题。
安装 LLOneBot 完成后重新登录 QQ,进入 LLOneBot 的设置页。
打开“启用反向 Websocket 服务”,点击下方的“添加”,并添加好反向 Websocket 监听地址。在示例中为 ws://127.0.0.1:11451/ws
,注意不要删去后面的 /ws
。
将“新消息上报格式类型”更改为“CQ 码”。
关闭设置窗口,确认配置文件保存。
OpenShamrock
OpenShamrock 是基于 Xposed 实现的 QQ 机器人框架,你可以在 Android 手机/模拟器中使用 OpenShamrock 运行机器人。
1.1.0
版本起弃用 OneBot V11 支持,迁移至新的 Kritor 协议。这意味着 1.1.0 及之后版本的 OpenShamrock 将不再支持 OneBot V11,以下教程也不再适用。请仔细辨别,以免带来不必要的麻烦。
安装
请参考官方文档中的说明进行框架的安装。
配置
请在机器人配置文件填写以下配置项:
qq_host = "127.0.0.1:11451"
- 将会在填写的 IP 地址和端口中开启一个 Websocket 服务器,用于 LLOnebot 反向连接。qq_account =
- 机器人的 QQ 号。use_shamrock = true
- 告诉机器人正在使用 OpenShamrock,以处理兼容性问题。
安装 OpenShamrock 完成后,请配置以下选项:
打开“消息格式为 CQ 码”和“被动 WebSocket”,并添加好被动 Websocket 监听地址。在示例中为 ws://127.0.0.1:11451/ws
,注意不要删去后面的 /ws
。
强制杀死 QQ 进程并重新启动 QQ 来应用 OpenShamrock 配置文件。
Go-cqhttp
Go-cqhttp 是基于 Mirai 以及 MiraiGo 的 OneBot Golang 原生实现。
Mirai 是一个在全平台下运行,提供 QQ Android 协议支持的高效率机器人库。
一个新注册的 QQ 账号仅需完成基础部分即可,为了避免在机器人使用后期时遇到 Code45 等问题,我们建议按照进阶配置来配置签名服务器。
在未来 qsign 签名服务彻底被官方封死之后,Go-cqhttp 将无法继续使用,请窒息。
基础配置
如果你想使用 Docker 部署 go-cqhttp,请转到使用 Docker。
从 go-cqhttp 的官方仓库上下载最新的 Release。
系统类型 | 可执行文件 | 压缩文件 |
---|---|---|
Intel 版 Macos | N/A | go-cqhttp_darwin_amd64.tar.gz
|
M1 版 Macos | N/A | go-cqhttp_darwin_arm64.tar.gz
|
32 位 Linux | N/A | go-cqhttp_linux_386.tar.gz
|
64 位 Linux | N/A | go-cqhttp_linux_amd64.tar.gz
|
arm64 Linux | N/A | go-cqhttp_linux_arm64.tar.gz
|
armv7 Linux | N/A | go-cqhttp_linux_armv7.tar.gz
|
32 位 Windows | go-cqhttp_windows_386.exe |
go-cqhttp_windows_386.zip
|
64 位 Windows | go-cqhttp_windows_amd64.exe |
go-cqhttp_windows_amd64.zip
|
arm64 Windows | go-cqhttp_windows_arm64.exe |
go-cqhttp_windows_arm64.zip
|
armv7 Windows | go-cqhttp_windows_armv7.exe |
go-cqhttp_windows_armv7.zip
|
解压下载好的文件到一个已经预先准备好的文件夹中。
运行 Go-cqhttp。此时将提示:
[WARNING]: 尝试加载配置文件 config.yml 失败: 文件不存在。 [INFO]: 默认配置文件已生成,请编辑 config.yml 后重启程序。
程序将会自动在存放 Go-cqhttp 文件夹的目录下生成一个默认配置文件 config.yml
。请填写好配置文件中的 QQ 账号和密码。
请在机器人配置文件填写以下配置项:
qq_host = "127.0.0.1:11451"
- 将会在填写的 IP 地址和端口中开启一个 Websocket 服务器,用于 Go-cqhttp 反向连接。qq_account =
- 机器人的 QQ 号。
接下来,请在 Go-cqhttp 的配置文件中设置对应的连接方式。
...
# 连接服务列表
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 # 引用默认中间件
...
...