博舍

Mirai实现QQ机器人 mirai机器人论坛

Mirai实现QQ机器人

Mirai实现机器人Java实现QQ机器人教程1.拉取项目demo2.修改配置文件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:SliderCaptchasolver

①让手机和电脑连接

首先,需要手机打开开发者模式,并且开启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@Slf4jpublicclassMyPrivateListener{/***复读私聊消息也可以使用@Listen(PrivateMsg.class)**其他的方法*Stringm1=msg.getMsg();发送的消息,如果表情则会转化为字符,如你好[CAT:face,id=212]*Stringm2=msg.getText();发送的消息,如果是表情则会加在后面,不会转化为字符串*MessageContentmm3=msg.getMsgContent();消息封装类**//复读消息,发送一条和接收的消息一样的消息*sender.sendPrivateMsg(msg,msg.getMsgContent());**//复读消息中的图片,可以是多个,只复读图片,不包含中间的文字消息*MessageContentmsgContent=msg.getMsgContent();*Listimage=msgContent.getCats("image");*Stringjoin=String.join("",image);*sender.sendPrivateMsg(msg,join);*@parammsg*@paramsender*/@OnPrivatepublicvoidrepetition(PrivateMsgmsg,Sendersender){//复读一条接收的信息并且进行发送sender.sendPrivateMsg(msg,msg.getMsgContent());}}

启动项目进行测试。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇