目录了解什么是NapCat使用流程1. 开始安装windows:?Linux其他2. 启动QQ和NapCatwindows:Linux:3. 通过 WebUI 配置OneBot服务1. 获取Token2. 配置WebUI可省略springboot实现websocket服务端1. 新建springboot项目2. 测试了解什么是NapCat由此可以看出 NapCat 是类似于中间件的东西也可称之为框架这里我们就称之为qq机器人框架本文章中介绍的都是集成版无需手动安装QQ。使用流程1. 开始安装windows:?NapCat.Win.绿色版本?特殊说明: 绿色版仅适用Windows.AMD64无需安装QQ 已内置前往Release 下载无头绿色版本 然后启动Bat 即可如果需要快速启动 编辑batNapCatWinBootMain.exe 10001---------------------------------------------------------------------------------------------------------------------------------NapCat.Shell - Win手动启动教程?前往NapCatQQ 的 release 页面下载NapCat.Shell.zip解压安装完成 双击目录下launcher.bat即可启动 如果是win10 则使用launcher-win10.bat注意 如果需要快速登录 将QQ号传入第二个参数即可Win11:launcher.bat 123456Win10:launcher-win10.bat 123456Linux这里推荐使用NapCat.Installer安装直接运行命令即可省事。Linux一键使用脚本**(支持Ubuntu 20/Debian 10/Centos9)**国内使用tui可视化交互安装?curl -o napcat.sh https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.sh sudo bash napcat.sh --tui---------------------------------------------------------------------------------------------------------------------------------国外使用tui可视化交互安装curl -o napcat.sh https://raw.githubusercontent.com/NapNeko/NapCat-Installer/refs/heads/main/script/install.sh sudo bash napcat.sh --tui其他MacOsDocker安卓详见shell部署方式或Framework部署方式2. 启动QQ和NapCatwindows:这里讲使用绿色版启动Shell版本请前往napcat官方文档查看1.解压下载的压缩包2.直接运行Linux:1.扫码登录QQ# 扫码登录qq只要登录成功后续不需要再次登录除非掉线 xvfb-run -a qq --no-sandbox2.查看帮助# 查看帮助 napcat help3.运行对应的启动命令napcat start 1234563. 通过 WebUI 配置OneBot服务1. 获取Token如果你已经启动了 NapCat并且有多于 1 个开放端口则可以通过 WebUI 进行配置默认端口6099默认访问地址http://ip:6099/webui/(请不要忘记配置防火墙否则你可能访问不到)特殊情况当端口被占用时会自动对端口 1直到找到可用端口最多尝试100次失败则会禁用 WebUI端口号Token会在启动日志中显示。linux可以使用查看日志命令获取token# 查看运行日志 napcat log 123456查询WebUI的访问地址以及登录token信息。日志中看到形如[WebUi] WebUi Local Panel Url: http://127.0.0.1:6099/webui?tokenxxxx的token信息。通过配置也可找到Token信息详见下面的配置WebUI部分2. 配置WebUI可省略如果你想调整WebUI配置请直接调整配置文件调整后重启napcat即可# 配置文件位置 opt/QQ/resources/app/app_launcher/napcat/config默认配置为{ host: 0.0.0.0, // WebUI 监听地址 port: 6099, // WebUI 端口 prefix: , // WebUI 工作前缀此项功能将在进阶配置中解释 token: xxxx, //登录密钥默认是自动生成的随机登录密码 loginRate: 3, //每分钟登录次数限制 }3. 配置onebot服务登录成功后配置onebot服务这里使用反向websocket反向websocket地址在springboot项目中获取。HTTP服务端 --- NapCat作为Http请求接受方 接收对应接口调用并回应 的单工模型 HTTP客户端 --- NapCat作为Http请求发起方 将事件推送至插件/应用框架 的单工模型 WebSocket服务端 --- 通常指正向WS 既能主动推送事件也能接收请求 的双工模型 WebSocket客户端 --- 通常指反向WS 既能主动推送事件也能接收请求 的双工模型springboot实现websocket服务端环境maven最新版作者使用3.9.9JDK: 17, 作者使用jdk231. 新建springboot项目pom.xmldependency groupIdcom.mikuac/groupId artifactIdshiro/artifactId version2.3.5/version /dependencyappliction.yml# 该配置为反向连接示例 server: port: 8080 shiro: ws: server: enable: true url: /ws/demo plugin-list: - com.napcatbot.demo.plugin.TestPlugin注意这里url就是刚才NapCat WebUI里面要配置的反向websocket地址地址ws://ip:port/ws/demoTestPlugin.javapackage com.napcatbot.demo.plugin; import com.mikuac.shiro.common.utils.MsgUtils; import com.mikuac.shiro.core.Bot; import com.mikuac.shiro.core.BotPlugin; import com.mikuac.shiro.dto.event.message.GroupMessageEvent; import com.mikuac.shiro.dto.event.message.PrivateMessageEvent; import org.springframework.stereotype.Component; Component public class TestPlugin extends BotPlugin { Override public int onPrivateMessage(Bot bot, PrivateMessageEvent event) { if (hello.equals(event.getMessage())) { // 构建消息 String sendMsg MsgUtils.builder() .at(event.getUserId()) .text(hello, this is napcatdemo plugin.) .build(); bot.sendPrivateMsg(event.getUserId(), sendMsg, false); } // 返回 MESSAGE_IGNORE 执行 plugin-list 下一个插件返回 MESSAGE_BLOCK 则不执行下一个插件 return MESSAGE_IGNORE; } Override public int onGroupMessage(Bot bot, GroupMessageEvent event) { if (hello.equals(event.getMessage())) { // 构建消息 String sendMsg MsgUtils.builder() .at(event.getUserId()) .text(hello, this is napcatdemo plugin.) .build(); // 发送群消息 bot.sendGroupMsg(event.getGroupId(), sendMsg, false); } // 返回 MESSAGE_IGNORE 执行 plugin-list 下一个插件返回 MESSAGE_BLOCK 则不执行下一个插件 return MESSAGE_IGNORE; } }连接成功2. 测试欢迎进群讨论727289809
NapCatQQ+Springboot基于onebot协议实现qq机器人
目录了解什么是NapCat使用流程1. 开始安装windows:?Linux其他2. 启动QQ和NapCatwindows:Linux:3. 通过 WebUI 配置OneBot服务1. 获取Token2. 配置WebUI可省略springboot实现websocket服务端1. 新建springboot项目2. 测试了解什么是NapCat由此可以看出 NapCat 是类似于中间件的东西也可称之为框架这里我们就称之为qq机器人框架本文章中介绍的都是集成版无需手动安装QQ。使用流程1. 开始安装windows:?NapCat.Win.绿色版本?特殊说明: 绿色版仅适用Windows.AMD64无需安装QQ 已内置前往Release 下载无头绿色版本 然后启动Bat 即可如果需要快速启动 编辑batNapCatWinBootMain.exe 10001---------------------------------------------------------------------------------------------------------------------------------NapCat.Shell - Win手动启动教程?前往NapCatQQ 的 release 页面下载NapCat.Shell.zip解压安装完成 双击目录下launcher.bat即可启动 如果是win10 则使用launcher-win10.bat注意 如果需要快速登录 将QQ号传入第二个参数即可Win11:launcher.bat 123456Win10:launcher-win10.bat 123456Linux这里推荐使用NapCat.Installer安装直接运行命令即可省事。Linux一键使用脚本**(支持Ubuntu 20/Debian 10/Centos9)**国内使用tui可视化交互安装?curl -o napcat.sh https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.sh sudo bash napcat.sh --tui---------------------------------------------------------------------------------------------------------------------------------国外使用tui可视化交互安装curl -o napcat.sh https://raw.githubusercontent.com/NapNeko/NapCat-Installer/refs/heads/main/script/install.sh sudo bash napcat.sh --tui其他MacOsDocker安卓详见shell部署方式或Framework部署方式2. 启动QQ和NapCatwindows:这里讲使用绿色版启动Shell版本请前往napcat官方文档查看1.解压下载的压缩包2.直接运行Linux:1.扫码登录QQ# 扫码登录qq只要登录成功后续不需要再次登录除非掉线 xvfb-run -a qq --no-sandbox2.查看帮助# 查看帮助 napcat help3.运行对应的启动命令napcat start 1234563. 通过 WebUI 配置OneBot服务1. 获取Token如果你已经启动了 NapCat并且有多于 1 个开放端口则可以通过 WebUI 进行配置默认端口6099默认访问地址http://ip:6099/webui/(请不要忘记配置防火墙否则你可能访问不到)特殊情况当端口被占用时会自动对端口 1直到找到可用端口最多尝试100次失败则会禁用 WebUI端口号Token会在启动日志中显示。linux可以使用查看日志命令获取token# 查看运行日志 napcat log 123456查询WebUI的访问地址以及登录token信息。日志中看到形如[WebUi] WebUi Local Panel Url: http://127.0.0.1:6099/webui?tokenxxxx的token信息。通过配置也可找到Token信息详见下面的配置WebUI部分2. 配置WebUI可省略如果你想调整WebUI配置请直接调整配置文件调整后重启napcat即可# 配置文件位置 opt/QQ/resources/app/app_launcher/napcat/config默认配置为{ host: 0.0.0.0, // WebUI 监听地址 port: 6099, // WebUI 端口 prefix: , // WebUI 工作前缀此项功能将在进阶配置中解释 token: xxxx, //登录密钥默认是自动生成的随机登录密码 loginRate: 3, //每分钟登录次数限制 }3. 配置onebot服务登录成功后配置onebot服务这里使用反向websocket反向websocket地址在springboot项目中获取。HTTP服务端 --- NapCat作为Http请求接受方 接收对应接口调用并回应 的单工模型 HTTP客户端 --- NapCat作为Http请求发起方 将事件推送至插件/应用框架 的单工模型 WebSocket服务端 --- 通常指正向WS 既能主动推送事件也能接收请求 的双工模型 WebSocket客户端 --- 通常指反向WS 既能主动推送事件也能接收请求 的双工模型springboot实现websocket服务端环境maven最新版作者使用3.9.9JDK: 17, 作者使用jdk231. 新建springboot项目pom.xmldependency groupIdcom.mikuac/groupId artifactIdshiro/artifactId version2.3.5/version /dependencyappliction.yml# 该配置为反向连接示例 server: port: 8080 shiro: ws: server: enable: true url: /ws/demo plugin-list: - com.napcatbot.demo.plugin.TestPlugin注意这里url就是刚才NapCat WebUI里面要配置的反向websocket地址地址ws://ip:port/ws/demoTestPlugin.javapackage com.napcatbot.demo.plugin; import com.mikuac.shiro.common.utils.MsgUtils; import com.mikuac.shiro.core.Bot; import com.mikuac.shiro.core.BotPlugin; import com.mikuac.shiro.dto.event.message.GroupMessageEvent; import com.mikuac.shiro.dto.event.message.PrivateMessageEvent; import org.springframework.stereotype.Component; Component public class TestPlugin extends BotPlugin { Override public int onPrivateMessage(Bot bot, PrivateMessageEvent event) { if (hello.equals(event.getMessage())) { // 构建消息 String sendMsg MsgUtils.builder() .at(event.getUserId()) .text(hello, this is napcatdemo plugin.) .build(); bot.sendPrivateMsg(event.getUserId(), sendMsg, false); } // 返回 MESSAGE_IGNORE 执行 plugin-list 下一个插件返回 MESSAGE_BLOCK 则不执行下一个插件 return MESSAGE_IGNORE; } Override public int onGroupMessage(Bot bot, GroupMessageEvent event) { if (hello.equals(event.getMessage())) { // 构建消息 String sendMsg MsgUtils.builder() .at(event.getUserId()) .text(hello, this is napcatdemo plugin.) .build(); // 发送群消息 bot.sendGroupMsg(event.getGroupId(), sendMsg, false); } // 返回 MESSAGE_IGNORE 执行 plugin-list 下一个插件返回 MESSAGE_BLOCK 则不执行下一个插件 return MESSAGE_IGNORE; } }连接成功2. 测试欢迎进群讨论727289809