【进阶】QQ聊天机器人–群聊机器人篇

看完本篇博客,能将能做到

  • 为你的QQ群定制一个人工智障!
  • 使用一位大佬的框架PICQ实现更多强大的功能!

代码已经上传到了github,可以看到更多细节(远程部署,连接数据库)

什么是PICQ?

picq:一个基于 酷Q HTTP 插件 的 Java QQ 机器人类库
基于这个框架,能够很容易的实现大多数功能,开发者不用去注重底层的实现细节,而只用关注功能本身。

话不多说,开撸

1 导入开发框架Hydevelop/PicqBotX

pom文件中导入项目仓库

<repositories><repository><id>jitpack.io</id><url>https://jitpack.io</url></repository>
</repositories>

pom文件中导入依赖

<dependency><groupId>com.github.hydevelop</groupId><artifactId>PicqBotX</artifactId><version>4.12.0.1019.PRE</version>
</dependency>

如果网络不好的话,很可能出现各种失败,如果失败了不要怕,多点几次说不定就成了。博主花了两个小时才把库导入好,问题就是出在网络和本地cahe中。。翻墙或者网络好的话很快就能从jitpack.io中下载完毕。祝你好运。
maven配置文件中镜像配置

<mirrors><mirror><id>nexus-aliyun</id><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>        </mirror>
</mirrors>

2 导入完毕,来一个最简单的helloworld

想要在springboot启动时运行picq机器人,你需要这么做

@Component
//写一个组件实现ApplicationRunner接口,就能在springboot启动时运行该程序,启动picq的机器人
public class Main implements ApplicationRunner {@Overridepublic void run(ApplicationArguments var1) throws Exception{// 创建机器人对象 ( 传入配置 ) 传入上报端口:// 30000就是我配置的上报端口,即在酷q的Http Api中配置的post_url端口,启动后,该程序运行在哪,他post_url的ip就是多少PicqBotX bot = new PicqBotX(new PicqConfig(30000).setDebug(true));// 添加一个机器人账户 ( 名字, 发送URL, 发送端口 )//我的springboot和酷q运行在同一个机器上,酷q在docker中,所以可以通过本地ip直接访问发送端口//该端口的作用就是用来发送机器人的回复消息bot.addAccount("easier", "127.0.0.1", 6000);// 注册事件监听器, 可以注册多个监听器bot.getEventManager().registerListeners(new RobListener());// 启动机器人, 不会占用主线程bot.startBot();}
}

3 监听器RobListener需要自己写,继承IcqListener,监听方法要写注解@EventHandler

public class RobListener extends IcqListener {private static ArtificialFool artificialFool = new ArtificialFool();//监听私聊信息@EventHandler//传入监听私聊事件public void privateMessage(EventPrivateMessage event){System.out.println("监听到私聊信息");//response就是回复,所以该功能就是把收到的消息回复回去,就是回声墙event.respond(event.getMessage());}
}

3 测试检查

检测到端口正常工作

使用tailf命令实时查看控制台打印的消息

这就是回声墙

4 群聊机器人

建立好了数据的连接 ,那么就可以去做要实现的功能了
在同一个监听器中再写一个监听群聊的方法

//监听群聊信息@EventHandlerpublic void groupMsg(EventGroupMessage event){System.out.println("监听到群聊消息...");String answer = artificialFool.answer(event);if (answer!=null){System.out.println("-->"+answer);event.respond(answer);}}

我把消息的处理封装成了一个方法
人工智障类ArtificialFool

public class ArtificialFool {private static Random random = new Random();public String answer(EventGroupMessage event){String message = event.message;if (isAt(message)){String trueMessage = message.substring(message.indexOf("]")+1).trim();System.out.println("<--"+trueMessage);String[] results = checkCommand(trueMessage);if (results!=null){return results[random.nextInt(results.length)];}else {return "小易听不懂,你可以这样对我说:\r\n"+ Arrays.toString(KeyWord.getCommands());}}return null;}//检验是否为私聊public boolean isAt(String message){if (message.startsWith("[CQ:at,qq=1342246315]")){System.out.println("群私聊");return true;}System.out.println("什么都没有发生");return false;}//检验是否为命令/*** 如果是命令,返回命令内容* 否则返回null*/public String[] checkCommand(String message){for (String command: KeyWord.getMapProblem().keySet()){if (message.equals(command)){return KeyWord.getMapProblem().get(command);}}return null;}
}

可以把所有的回复封装到一个类中

public class KeyWord {private static String[] commands;public static Map<String, String[]> mapProblem;private static String[] iAm;private static String[] good;private static String[] signIn;static {commands = new String[]{"签到","夸夸我","自我介绍"};iAm = new String[]{"我是本群的人工智障","我是一段无情的代码....","我就是我",};good = new String[]{"想得美"};signIn = new String[]{"签到失败,该功能仍在开发中"};mapProblem = new LinkedHashMap<>();mapProblem.put("功能", commands);mapProblem.put("自我介绍", iAm);mapProblem.put("夸夸我", good);mapProblem.put("签到", signIn);}
}

总结

从想法,到去实践;从读文档,看教程,解决各种环境问题,配置问题,到最后综合自己的想法做了个还能用的人工智障。这个过程踩了许多坑,自己还是太菜,虽然是别人已经写好的框架,但是应用起来还是很困难。我觉得这个过程中,最重要的是学会如何快速的读文档,根据自己的环境去想解决办法,这些能力是很需要培养的!

【进阶】QQ聊天机器人--群聊机器人篇相关推荐

  1. java仿QQ聊天室群聊(快速写一个简易QQ)

    [mie haha的博客]转载请注明出处(万分感谢!): https://blog.csdn.net/qq_40315080/article/details/83052689 用java写聊天室实现群 ...

  2. java仿qq群聊_[转载]仿QQ聊天室群聊的练习心得

    javase的学习即将告一段落,作为最后的一个项目练习,仿聊天室的程序编写让我很是头疼了一阵子.说起来还是自己java基础不牢的缘故导致的,虽然整体框架都已经很清晰了但是实际编写过程中却依然磕磕绊绊, ...

  3. MSAA获取QQ聊天界面群聊按钮位置

    废话不多说直接上源码 以下是MSAA的核心操作源码: using System; using System.Collections.Generic; using System.Linq; using ...

  4. python写qq群机器人怎么弄_python打造自由DIY 群聊机器人

    本文首发于简书DIY 微信群聊机器人​www.jianshu.com 前言 这几天我的一个小伙伴问我能不能给 Ta 做一个配置灵活的微信群聊天机器人,之前了解过 itchat 库的使用,我就爽快的答应 ...

  5. 给自己的QQ群开启腾讯官方的群聊机器人

    看到腾讯有个机器人还不错 能聊天 能唱歌 方法: 1.点击链接填写https://wj.qq.com/s/946969/64ac 群聊机器人内测邀请.按照提示填就行了 2.然后就是开启机器人了 htt ...

  6. 如何创建一个以chatgpt为基础的QQ群聊机器人的流程细节

    为了创建一个基于 ChatGPT 的 QQ 群聊机器人,您需要遵循以下步骤: 1.获取 ChatGPT 模型:您可以在 OpenAI 的 GPT-3 模型中获取 ChatGPT 模型. 2.训练模型: ...

  7. qq群聊机器人接入ChatGPT-简介和源码

    qq群聊机器人接入ChatGPT 最近 ChatGPT 很火,也注册了账号玩了玩,确实灰常强大.但是也有的小伙伴可能没办法注册账号,我就想着把qq群机器人接入ChatGPT. 过程还是比较简单顺利的. ...

  8. Baby Q PK小冰 谁才是QQ6.7新增的QQ群聊机器人之王 ...

    一提到QQ群聊机器人,小伙伴们一定不陌生.毕竟酷Q机器人和晨风机器人插件曾风靡一时,霸占过多少QQ群啊!但这些插件虽便利,却极不稳定,经常动不动就罢工了. 腾讯爸爸听到众小伙伴们的呼声,以及近年来AI ...

  9. 持续集成之消息推送:钉钉与企业微信的群聊机器人通用示例

    使用钉钉和企业微信的群聊机器人可以进行消息推送,这篇文章使用一个简单的脚本来说明其使用方式. 推送消息的方法 钉钉或者企业微信的群机器人都可提供消息推送的功能,相关的机器人的添加和消息推送的方法可以参 ...

  10. delphi 企业微信消息机器人_企业微信—群聊机器人

    在企业微信群聊机器人接口对接天气API使用过程中,遇到 过一个问题,就是对于嵌套json数据如何进行嵌套的| 一:"msgtype": "text", curl ...

最新文章

  1. 图片按钮ImageButton
  2. Android课程设计倒计时app,单片机课程设计-可调倒计时器.doc
  3. Pytorch基础知识整理(六)参数初始化
  4. 你的AJAX 请求真的安全?
  5. Lattice Diamond Reveal SerDes Debug Core简明教程(For ECP5)
  6. html留言页面设计,html的留言板制作(js)
  7. SSH配置-使用Bitvise SSH Client工具在Windows下远程登陆Linux服务器
  8. 使用matlab制作电子签名
  9. 如何搭建 MTK 6577模拟器
  10. Simulia TOSCA Structure v8.1流体力学结构优化软件
  11. 坤宝德万达打造命运共同体万达茂天樾之夜.时光发声全国巡回演唱会南宁站圆满结束
  12. 机器学习(九)基于SVM的上证指数涨跌预测
  13. java时间格式化与格式
  14. 08_01_分布式架构搭建拉勾教育PC站
  15. IP广播分控隐私政策
  16. AVAIO流学习总结
  17. Bitmap recycle() 源码解析
  18. 深度拆解高爷家:单品年销过亿的国产猫粮是怎么炼成的?
  19. 中国碳化硅(SiC)行业“十四五”规划和远景目标建议报告2022-2028年
  20. 智慧校园建设实施方案

热门文章

  1. session 修改密码python_django修改密码强制退出机制
  2. pe制作linux硬盘的镜像文件_用WindowsPE制作的启动U盘或移动硬盘安装cent os 6.2
  3. 语言的流变_拔剑-浆糊的传说_新浪博客
  4. oracle开启em服务
  5. DELL笔记本FN键解锁
  6. Maven实战 4 -- Maven核心概念
  7. 冬瓜哥送你元宵大礼盒啦!!
  8. 简单理解串行计算、并行计算、分布式计算、网格计算与云计算
  9. 《薛兆丰的经济学课》课程总结6--经济学家们
  10. Docker阿里加速器