Mirai实现QQ机器人
Mirai实现机器人
- Java实现QQ机器人教程
- 1.拉取项目demo
- 2.修改配置文件
- 3.滑动窗口验证
- (1)配置JVM参数
- (2)启动项目
- (3)获取ticket
- ①让手机和电脑连接
- ②开启调试模式
- ③进行滑动验证
- 4.简单测试
Java实现QQ机器人教程
要想实现Java版的QQ机器人,其实并不难,今天就给大家分享一下使用Mirai框架制作简单的QQ机器人。
1.拉取项目demo
首先,Miari是一个开源的框架,我们可以从GitHub上拉取项目进行查看,但是GitHub需要使用加速插件才能很好的访问,所以在这里我们可以选择使用Gitee开源平台。
simbot-mirai-demo: 原生simbot框架的mirai组件demo。 (gitee.com)
我们通过这个链接,对项目进行拉取。
可以直接复制https中的链接,也可以下载zip压缩文件,两种方式都可以,但是需要时间加载依赖。
拉取成功之后的项目目录是这样的。
首先我们需要阅读一下README.md文件,使用之前需要了解一些基本的注意事项。
第一步克隆项目显然我们已经完成了。所以我们接下来修改配置文件即可。
2.修改配置文件
我们找到resource目录下的.yml文件,进行测试QQ机器人账号密码的填写,如下图:
前面是账号,后面是密码。中间需要使用英文冒号隔开。
3.滑动窗口验证
接下来我们可以启动项目,但是第一次使用该框架的账号需要进行Mirai滑块验证,如果启动失败的话,我们需要配置一些项目的JVM参数。
详细教程可以查看mirai-login-solver-selenium。
simbot-mirai-demo: 原生simbot框架的mirai组件demo。 (gitee.com)
(1)配置JVM参数
我们需要在JVM参数上配置开启桌面滑动验证,如下
-Dmirai.slider.captcha.supported
但是这个验证一个账号只需要验证一次即可,所以完全不用因为过于麻烦而不想继续实现。
(2)启动项目
控制台输出日志之后,然后桌面上就会弹出一个验证框,上面给了一个url。
看到提示“需要滑动验证码,完成后请输入ticket”。
我们可以复制一下url看一下是什么
原来就是一个平常登录使用的滑动验证,但是现在看来我们显然是不可能这样滑动就可以完成了,我们需要获取ticket。
(3)获取ticket
获取ticket有两种方法,一种是已经失效的使用另外一个项目进行通过,另外一种是通过手机连接电脑进行验证,我这里使用的是第二种。我们也需要做一些准备工作。具体可以看下面的教程。
GitHub - project-mirai/mirai-login-solver-selenium: SliderCaptcha solver
①让手机和电脑连接
首先,需要手机打开开发者模式,并且开启USB调试。
开启之后手机需要打开浏览器页面,最好是谷歌浏览器。但是因为谷歌浏览器上网需要外网,如果不想麻烦的话,搜索引擎我们可以使用百度。
如下:
②开启调试模式
然后在手机和电脑都打开 Chrome,并使电脑成功链接上手机 Chrome。
因为上面说到了谷歌浏览器需要使用外网,如果没有外网的话,会出现404空白页面。
所以这里我们使用Edge浏览器。
在手机的开发者模式和USB调试都打开的情况下,我们需要打开edge浏览器访问edge://inspect/#devices
edge://inspect/#devices
刚开始访问的时候是这样的
我们稍等一会,打开浏览器访问edge://inspect/#devices的同时,手机上会弹出是否开启USB调试,这里我们选择允许。
然后过一会就会出现调试页面
③进行滑动验证
我们只需要点击inspect即可,打开调试页面。
然后回到我们当时弹出的那个滑动验证的窗口,复制一长串的url,复制到模拟页面的手机的url进行访问,粘贴后回车即可。
接下来就会出现滑动验证的页面,此时电脑页面是同步手机的。
我们进行验证。
验证完成之后发送请求,右边控制台网络会出现一系列的请求监听记录。我们需要找到cap_union_new_verify,就可以找到ticket,注意分号之间的字符串才是ticket,我们复制后进行验证。
我们输入复制后的ticket,然后回车。
这时候就可以完成mirai登录滑动验证了。
回到项目我们可以看到控制台打印出我们的账号信息。
至此,我们mirai的基本配置就已经完成。
4.简单测试
我们配置完成之后就可以对我们的机器人账号的私聊、群聊等消息进行配置,这里只做一个简单的测试,具体的功能大家可以去官方文档进行阅读与实现。
@Beans
@Slf4j
public class MyPrivateListener {/*** 复读私聊消息 也可以使用@Listen(PrivateMsg.class)** 其他的方法* String m1 = msg.getMsg(); 发送的消息,如果表情则会转化为字符,如 你好[CAT:face,id=212]* String m2 = msg.getText(); 发送的消息,如果是表情则会加在后面,不会转化为字符串* MessageContent mm3 = msg.getMsgContent(); 消息封装类** //复读消息,发送一条和接收的消息一样的消息* sender.sendPrivateMsg(msg,msg.getMsgContent());** //复读消息中的图片,可以是多个,只复读图片,不包含中间的文字消息* MessageContent msgContent = msg.getMsgContent();* List<Neko> image = msgContent.getCats("image");* String join = String.join("", image);* sender.sendPrivateMsg(msg,join);* @param msg* @param sender*/@OnPrivatepublic void repetition(PrivateMsg msg, Sender sender) {//复读一条接收的信息并且进行发送sender.sendPrivateMsg(msg,msg.getMsgContent());}
}
启动项目进行测试。
Mirai实现QQ机器人相关推荐
- PHP开发基于Mirai的QQ机器人
博客和更新地址:PHP开发基于Mirai的QQ机器人 前言 在完成配置开源安卓QQ协议库Mirai后,便可使用已有开源项目来部署自己的QQ机器人,但自行开发显然更符合需求.借助mirai-api-ht ...
- Mirai框架qq机器人教程
Mirai框架qq机器人教程 0.前言 1. 安装Java 2.安装Mirai启动器 3.下载IDEA或其他编译器 4.创建mirai-console插件项目 4.1 通过git创建 4.2 通过插件 ...
- 「Java」基于Mirai的qq机器人开发踩坑笔记(其一)
目录 0. 前置操作 I. 安装MCL II. MCL自动登录配置 III. 安装IDEA插件 1. 新建Mirai项目 2. 编写主类 3. 添加外部依赖 4. IDEA运行 5. 插件打包 6. ...
- 「Java」基于Mirai的qq机器人开发踩坑笔记(其二)
目录 0. 配置机器人 1. onLoad方法 2. onEnable方法 3. 消息属性 4. 消息监听 I. 好友消息 II. 群聊消息 III. 无差别消息 5. 发送消息 I. 文本消息 II ...
- 基于Mirai搭建QQ机器人监控B站直播
搭建自定义Mirai机器人 周末本来想继续学Vue来着,这不又搞这个了,唉,这计划赶不上变化啊. 参考文档 mamoe/mirai: 高效率 QQ 机器人支持库 Gradle 下载的依赖jar包在哪? ...
- PHP开发基于Mirai的QQ机器人(一)
基础环境的搭建 (一) 本文简介 本文讲解高效率QQ机器人框架Mirai. 本文发布于 Mirai V2 由于QQ机器人常被部署在服务器,所以我只讲解 Linux 的部署方式. 本文针对PHP开发者. ...
- 随心玩玩(三)Mirai框架QQ机器人
语言是Kotlin,其实什么语言并不重要,会调用API就够了 文章目录 1. 什么是Mirai框架 2. 创建项目 3. Hello Mirai 4. 后续进阶 1. 什么是Mirai框架 mirai ...
- mirai 高效率 QQ 机器人框架
其他文章可以访问以下链接: https://blog.csdn.net/sxf1061700625/article/details/1201312451 QQ控制树莓派(舵机+摄像头+...)_小锋学 ...
- 开发 mirai QQ机器人起步教程
前言 虽然该文最终是达到以python开发mirai机器人的目的,但起步教程,尤其是环境配置上仍然有大量的相同操作,对其他编程语言仍有借鉴之处 假设你已经安装好了 Java.Python等运行必须的环 ...
- [Centos7]Mirai QQ机器人监听播报TeamSpeak3用户状态
目录 1 安装mirai 1.1 创建用户 1.2 下载mcl-installer 1.3 安装 2 启动并使用 2.1 首次启动 2.2 安装插件 2.2.1 chat-command 2.2.2 ...
最新文章
- 腾讯精选练习 50 题(Leetcode)笔记 PDF下载!
- 卷起来了,写了一套计算机视觉学习笔记(20G/代码/PPT/视频)
- CentOS下安装ZooKeeper
- 【洛谷搜索专题Python和C++解】DFS和BFS经典题目(陆续补充)
- ALV DataChange EVENT
- static_cast、dynamic_cast、const_cast和reinterpret_cast总结
- linux 创建路径函数,Linux函数库的创建方法(2)
- 用eclipse往mysql插入中文出现乱码解决方法
- 浅析php学习的路线图
- CVPR2020 | 当目标跟踪遇上对抗攻击
- 国外大学生谈经验:如何在Github参与开源(Open Source on Github: Your First Contribution)
- 哪些因素会影响数据质量
- 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_5.RabbitMQ研究-入门程序-生产者...
- 世界500强企业面试经验分享
- 机器学习项目实践——K-means聚类实现广告分析
- 梯度消失、爆炸产生的原因以及解决方法
- airpods版本号_怎么看airpods版本号 苹果airpods查看固件版本教程
- Java微信表情包字符处理,数据库存储以及转义解决方式
- NPM 2FA双重认证的设置方法
- oracle 查询时间段内的天,ORACLE任意时间段内所有天数日期查询