news 2026/7/23 9:43:57

NapCatQQ+Springboot基于onebot协议实现qq机器人

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
NapCatQQ+Springboot基于onebot协议实现qq机器人

目录

了解什么是NapCat?

使用流程

1. 开始安装

windows:?

Linux:

其他:

2. 启动QQ和NapCat

windows:

Linux:

3. 通过 WebUI 配置OneBot服务

1. 获取Token

2. 配置WebUI(可省略)

springboot实现websocket服务端

1. 新建springboot项目

2. 测试


了解什么是NapCat?

由此可以看出 NapCat 是类似于中间件的东西,也可称之为框架,这里我们就称之为qq机器人框架,本文章中介绍的都是集成版,无需手动安装QQ

使用流程

1. 开始安装
windows:?

NapCat.Win.绿色版本?

  1. 特殊说明: 绿色版仅适用Windows.AMD64无需安装QQ 已内置
  2. 前往Release 下载无头绿色版本 然后启动Bat 即可
  3. 如果需要快速启动 编辑batNapCatWinBootMain.exe 10001

---------------------------------------------------------------------------------------------------------------------------------

NapCat.Shell - Win手动启动教程?

  1. 前往NapCatQQ 的 release 页面
  2. 下载NapCat.Shell.zip解压
  3. 安装完成 双击目录下launcher.bat即可启动 如果是win10 则使用launcher-win10.bat

注意 如果需要快速登录 将QQ号传入第二个参数即可

Win11:launcher.bat 123456Win10:launcher-win10.bat 123456

Linux:

这里推荐使用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
其他:

MacOs,Docker,安卓,详见:shell部署方式或Framework部署方式

2. 启动QQ和NapCat
windows:

这里讲使用绿色版启动,Shell版本请前往napcat官方文档查看

1.解压下载的压缩包

2.直接运行

Linux:

1.扫码登录QQ

# 扫码登录qq,只要登录成功,后续不需要再次登录除非掉线 xvfb-run -a qq --no-sandbox

2.查看帮助:

# 查看帮助 napcat help

3.运行对应的启动命令

napcat start 123456
3. 通过 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?token=xxxx的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.9

JDK: 17+, 作者使用jdk23

1. 新建springboot项目

pom.xml

<dependency> <groupId>com.mikuac</groupId> <artifactId>shiro</artifactId> <version>2.3.5</version> </dependency>

appliction.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/demo

TestPlugin.java

package 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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 14:19:13

毕设程序java老年大学健康状况监测管理系统 基于Java的银发学堂健康监护与预警平台 智慧养老教育场景下的长者健康数据追踪系统

毕设程序java老年大学健康状况监测管理系统8c1p2h5r &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着我国人口老龄化进程加速推进&#xff0c;老年教育已成为满足老年人精神文…

作者头像 李华
网站建设 2026/7/14 14:19:18

霍尔电流传感器原理与开环/闭环工程设计指南

1. 霍尔电流传感器的测量原理与工程实现电流作为电路中最基础的物理量之一&#xff0c;其精确、安全、隔离的测量始终是电力电子、工业控制、新能源系统等领域的关键技术需求。在不破坏原电路结构的前提下实现高精度、宽频带、电气隔离的电流检测&#xff0c;霍尔电流传感器凭借…

作者头像 李华