Skip to content

本文档由 AI 编写,已经人工审核。

NapCat(QQ)

NextBridge 通过 NapCat 连接 QQ——NapCat 是一个非官方 QQ 客户端,提供 OneBot 11 WebSocket API。由于 QQ 没有面向普通账号的官方机器人 API,NapCat 作为中间桥接层使用。

准备工作

  1. 安装并运行 NapCat,将其配置为 WebSocket 服务端模式。
  2. 记录 WebSocket 地址(默认:ws://127.0.0.1:3001)和你设置的访问令牌。
  3. data/config.json 中添加实例配置。

配置项

config.jsonnapcat.<实例ID> 下添加:

是否必填默认值说明
ws_urlws://127.0.0.1:3001NapCat 服务端的 WebSocket 地址
ws_token访问令牌(作为 ?access_token=... 追加到 URL)
max_file_size10485760(10 MB)发送附件时单个文件的最大下载字节数
cqface_mode"gif"QQ 表情段的呈现方式。"gif" 将表情以动态 GIF 图上传(来自本地 db/cqface-gif/ 数据库);"emoji" 以内联文本呈现,如 :cqface306:
file_send_mode"stream"向 QQ 上传文件和视频的方式。"stream" 使用分块 upload_file_stream(推荐用于大文件);"base64" 将整个内容编码后直接传给 upload_group_file
stream_threshold0(禁用)大于 0 时,当文件或视频超过该字节数时自动切换为 "stream" 模式,忽略 file_send_mode 的设置。
proxy用于 WebSocket 连接和附件下载的代理 URL(例如:http://proxy.example.com:8080socks5://proxy.example.com:1080)。如果未设置,将使用全局代理配置(如有)。设置为 null 可显式禁用此实例的代理(忽略全局代理设置)。
json
{
  "napcat": {
    "qq_main": {
      "ws_url": "ws://127.0.0.1:3001",
      "ws_token": "your_secret",
      "max_file_size": 10485760
    }
  }
}

规则频道键

rules.jsonchannelsfrom/to 下使用:

说明
group_idQQ 群号(字符串或数字均可)
json
{
  "qq_main": { "group_id": "947429526" }
}

仅支持群消息

NextBridge 目前只桥接群消息,不转发私聊消息。

消息段解析

收到的消息依据 OneBot 11 消息段数组解析:

段类型处理方式
text转为消息文本
at转为 @名称 格式的文本
image作为 image 附件转发
record作为 voice 附件转发
video作为 video 附件转发
file作为 file 附件转发
其他(表情、回复、合并转发...)静默跳过

发送

附件类型发送方式
image下载后以 base64 编码发送(base64://...
voice下载后以 base64 编码发送(base64://...
video下载后按 file_send_mode 发送(stream 或 base64)
file下载后按 file_send_mode 发送(stream 或 base64)

file_send_modestream_threshold 配置项控制视频和文件的上传方式。Stream 模式(upload_file_streamupload_group_file)为默认值,对大文件更可靠。如果你的 NapCat 版本不支持流式上传,可改为 "base64";配置 stream_threshold 可在文件超过指定大小时自动回退到 stream 模式。

注意事项

  • 自身消息回显:NapCat 会将机器人自己发送的消息作为真实事件回传。NextBridge 通过对比 user_idself_id 自动过滤这类消息。
  • 自动重连:WebSocket 连接断开后,NextBridge 每隔 5 秒自动重新连接。