【SpringBoot】教你写个QQ机器人(1)准备哪些东西呢

                           教你写个QQ机器人(1)准备哪些东西呢

有一天,我的高中同学,闲着没事做着二手车倒腾生意。突然给我提了一个需求,说我能不能实现一个机器人。它能够监控群消息,如果有人发了设定好的关键词,比如二手车,就立马把这个人的QQ号转发给他,接下来去谈生意。

我一想,这怎么监控群消息啊,难度有点高啊(这个时候我丝毫没意识其实早就出现了这种技术,只不过Java语言实现的很少)。我挺感兴趣,但不知道从何入手,在百度数次之后,发现了酷Q这个好东西!但奈何这个应用非Java编写,我无法制作插件,无法满足自己个性化的需求。这个时候,突然发现了CQHTTP这个开源插件,通过HTTP协议与本机的酷Q进行交互,并开放接口,那我就可以在SpringBoot项目中请求接口不就好了吗,好了,现在理清思绪,开始动手。

在历经两天的熬夜之后,终于将这个机器人搞完了。(我是带着熊猫眼写下这篇文章的)

目前这个QQ机器人能够实现的功能有垃圾分类查询与群关键词监控,功能还在添加中。用Java语言编写的后台,配合缓存与数据库提高查询效率。话不多说,一起来看看是怎么实现的吧。

 

前置要求


本教程基于酷Q Air版本,详情见酷Q Air 5.14 ~ 轻盈,梦想,新生 ~

基于CoolQ HTTP API 插件插件,详情见[免费(开源)]HTTP API 插件,其文档见CoolQ HTTP API 插件

这个插件通过 HTTP 对酷 Q 的事件进行上报以及接收 HTTP 请求来调用酷 Q 的 DLL 接口,从而可以使用其它语言编写酷 Q 插件。

Java:1.8版本,有些地方用到了Lamdba表达式

Mysql,可要可不要,在做垃圾分类模块时,我把用户每次查询出来的数据存入了Mysql中

Redis,可要可不要,同样是在垃圾分类模块中,为了增加查询速度的。用户查询垃圾分类时,先在Redis中查询,查不到再去Mysql中查询,再查不到就去请求外部api,api地址见垃圾分类查询。查询出结果后,再存入数据库,再存入Redis中。

后端技术:SpringBoot


开始安装

Java、Redis、Mysql怎么安装的我就不说了。

酷Q Air:去官网下载酷Q Air图灵版或小i版,直接解压即可。

之后跟着[免费(开源)]HTTP API 插件中的使用方法-手动安装板块一步一步安装好,登录酷q,重载应用,启用此插件,遇到错误后,可能需要装个vc++ 2017运行库,安装好后,再次启用此插件,然后这个插件会开启一个http服务器,默认占用5700端口,在设置post_url后,此服务器会将QQ收到的消息上报给post_url,在post_url响应里可以设置是否回复,是否@等。


开始配置

在酷Q的解压目录下的酷Q Air\data\app\io.github.richardchien.coolqhttpapi\config下,会有与刚才登陆的QQ号对应的json配置文件,如图所示,配置post_url即可

启动酷Q并启用插件后,会弹出一个cmd命令行,上面记录着HTTP服务器的请求与回复信息,我们的SpringBoot项目还未开启,也没有制定post_url接口,因此现在HTTP服务器暂时无法向接口上报。

启用coolqhttpapi插件后,插件打开了一个命令行输出界面,具体如下:

接着我们在SpringBoot编写该Controller,用来接收插件上报的消息。


开启SpringBoot之旅,编写实际的代码见教你写个QQ机器人(2)

 

注意:此框架现已基本稳定,文档会尽快完善。 该分支使用二维码登陆的协议参考了原名:SmartQQ-for-Raspberry-Pi(PiWebQQV2)这一项目,自行整合开发了基于SmartQQ的自动机器人框架。 登陆时采用QQ安全中心的二维码做为登陆条件, 不需要在程序里输入QQ号码及QQ密码。 旧版机器人仍有保留在old_QQBot.py中。 基本功能 聊功能: 注:以下命令皆是在qq中发送,聊命令发送到所在聊吐槽功能(tucao),类似于小黄鸡,在中通过发送!learn {ha}{哈哈}语句,则机器人检测到发言中包含“ha”时将自动回复“哈哈”。!delete {ha}{哈哈}可以删除该内容。吐槽内容本地保存在data/tucao_save/中。 聊复读功能(repeat),检测到聊中连续两个回复内容相同,将自动复读该内容1次。 聊关注功能(follow),使用命令!follow qq号可以使机器人复读此人所有发言(除命令外)使用命令!unfollow qq号解除关注。qq号处可使用"me"来快速关注与解除关注自己,例:!follow me 聊唤出功能(callout),聊中检测关键词智障机器人,若发言中包含该词,将自动回复干嘛(‘·д·),此功能一般用于检测机器人状态与调戏 聊命令功能(command_0arg/command_1arg):使用![命令名]格式或![命令名] {参数1}执行命令,命令“吐槽列表”,使用命令!吐槽列表在聊中激活,列出当前的吐槽列表。 !删除关键字 {blablabla}:删除关键字“blablabla”下的所有吐槽内容 !吐槽列表:列出当前的吐槽列表 现有无参数命令: 现有单参数命令: 私聊功能: 私聊唤出功能(callout),私聊中检测关键词智障机器人,若发言中包含该词,将自动回复干嘛(‘·д·),此功能一般用于检测机器人状态与调戏 私聊复读功能(repeat),检测到私聊中连续两个回复内容相同,将自动复读该内容1次。 临时对话功能: 唤出功能(callout),具体同私聊与聊。   标签:smartqq  smartqqbot
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SunAlwaysOnline

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值