使用 NapCat
TIP
- 本项目严禁用于任何违反法律法规的用途。若您意图将 AstrBot 应用于非法产业或活动,我们明确反对并拒绝您使用本项目。
- AstrBot 通过
aiocqhttp适配器接入 OneBot v11 协议。OneBot v11 协议是一个开放的通信协议,并不代表任何具体的软件或服务。
NapCat 的 GitHub 仓库:NapCat NapCat 的文档:NapCat 文档
NapCat 提供了大量的部署方式,包括 Docker、Windows 一键安装包等等。
通过一键脚本部署
推荐采用这种方式部署。
Windows
看这篇文章:NapCat.Shell - Win手动启动教程
Linux
看这篇文章:NapCat.Installer - Linux一键使用脚本(支持Ubuntu 20+/Debian 10+/Centos9)
TIP
Napcat WebUI 在哪打开: 在 napcat 的日志里会显示 WebUI 链接。
如果是 linux 命令行一键部署的napcat:docker log <账号>。
Docker部署的 NapCat:docker logs napcat。
通过 Docker Compose 部署
TIP
如果用 Docker Compose 部署,NapCat 侧无需配置,通过 NapCat WebUI (工作在端口 6099) 或 docker logs napcat 登录,仅在 AstrBot 侧开启 aiocqhttp 适配器即可连接,并且可以直接实现文件 语音数据、文件数据 正常接收与发送。
- 下载或复制 astrbot.yml 内容
- 将刚刚下载的文件重命名为
astrbot.yml - 在
astrbot.yml文件所在目录执行:
NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker-compose -f ./astrbot.yml up -d通过 Docker 部署
TIP
如果用 Docker 部署,将无法正常接收到语音数据、文件数据。这意味着语音转文字、沙箱的文件输入功能将无法使用。可以接收到文字消息、图片消息等其他类型的消息。
此教程默认您安装了 Docker。
在终端执行以下命令即可一键部署。
docker run -d \
-e NAPCAT_GID=$(id -g) \
-e NAPCAT_UID=$(id -u) \
-p 3000:3000 \
-p 3001:3001 \
-p 6099:6099 \
--name napcat \
--restart=always \
mlikiowa/napcat-docker:latest执行成功后,需要查看日志以得到登录二维码和管理面板的 URL。
docker logs napcat请复制管理面板的 URL,然后在浏览器中打开备用。
然后使用你要登录的账号扫描出现的二维码,即可登录。
如果登录阶段没有出现问题,即成功部署。
连接到 AstrBot
在 AstrBot 配置 aiocqhttp
- 进入 AstrBot 的管理面板
- 点击左边栏
机器人 - 然后在右边的界面中,点击
+ 创建机器人 - 选择
OneBot v11
弹出的配置项填写:
- ID(id):随意填写,仅用于区分不同的消息平台实例。
- 启用(enable): 勾选。
- 反向 WebSocket 主机地址:请填写你的机器的 IP 地址,一般情况下请直接填写
0.0.0.0 - 反向 WebSocket 端口:填写一个端口,默认为
6199。 - 反向 Websocket Token:只有当 NapCat 网络配置中配置了 token 才需填写。
图例:(最快只需要点击启用,然后保存即可)
点击 保存。
配置管理员
填写完毕后,进入 配置文件 页,点击 平台配置 选项卡,找到 管理员 ID,填写你的账号号(不是机器人的账号)。
切记点击右下角 保存,AstrBot 重启并会应用配置。
在 NapCat 中添加 WebSocket 客户端
切换回 NapCat 的管理面板,点击 网络配置->新建->WebSockets客户端。
在新弹出的窗口中:
- 勾选
启用。 URL填写ws://宿主机IP:端口/ws。如ws://localhost:6199/ws或ws://127.0.0.1:6199/ws。
IMPORTANT
- 如果采用 Docker 部署并同时把 AstrBot 和 NapCat 两个容器接入了同一网络,
ws://astrbot:6199/ws(参考本文档的 Docker 脚本)。 - 由于 Docker 网络隔离的原因,不在同一个网络时请使用内网 IP 地址或公网 IP 地址 (不安全) 进行连接,即
ws://(内网/公网):6199/ws。
- 消息格式:
Array - 心跳间隔:
5000 - 重连间隔:
5000
WARNING
- 切记后面加一个
/ws! - 这里的 IP 不能填为
0.0.0.0
点击 保存。
前往 AstrBot WebUI 控制台,如果出现 aiocqhttp(OneBot v11) 适配器已连接。 蓝色的日志,说明连接成功。如果没有,若干秒后出现 aiocqhttp 适配器已被关闭 则为连接超时(失败),请检查配置是否正确。
🎉 大功告成
此时,你的 AstrBot 和 NapCat 应该已经连接成功!使用 私聊 的方式对机器人发送 /help 以检查是否连接成功。
