欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何使用Java开发QQ机器人 方法二

程序员文章站 2022-07-14 22:10:11
...

使用Java开发QQ机器人- CQ & HTTP TO CQ

使用库Q平台下的HTTP TO CQ插件以及simple-robot核心标准库作为依赖。

此插件与框架的 简陋 简单介绍:文档处简介

前往项目Github地址点击star以收获作者的感谢:GayHub

快速开始



一、安装

1. 下载并安装 酷Q

前往酷Q官方下载地址下载酷Q应用,并安装(启动一次),然后关闭。


2. 下载并安装 HTTP TO CQ插件

①. 前往HTTP TO CQreleases 下载最新版本。

②. 将下载好的.cpk格式文件移动至酷Q根目录下的/app文件夹下。

③. 启动一次酷Q程序,右键酷Q标志,选择:应用 > 应用管理,如图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gcC80kIu-1582724960083)(https://i.vgy.me/QpgBpK.png)]

然后将会出现应用管理界面,选择HTTP API插件并选择启用,如图所示:
如何使用Java开发QQ机器人 方法二

HTTP TO CQ插件自带UI,对于新手来说还是比较友好的。其配置UI图例如图:

如何使用Java开发QQ机器人 方法二
如何使用Java开发QQ机器人 方法二如何使用Java开发QQ机器人 方法二

3. 创建Java项目

你可以使用一切支持的方式来自动构建项目,以下将会举几个例子:

[info] 版本号请自行替换为 Maven仓库中的最新版本:https://img.shields.io/maven-central/v/io.github.ForteScarlet.simple-robot-core/component-forhttpapi

①. Maven

<dependency>
  <groupId>io.github.ForteScarlet.simple-robot-core</groupId>
  <artifactId>component-forhttpapi</artifactId>
  <version>${version}</version>
</dependency>

②. Gradle

implementation 'io.github.ForteScarlet.simple-robot-core:component-forhttpapi:${version}'

③. Grape

@Grapes(
  @Grab(group='io.github.ForteScarlet.simple-robot-core', module='component-forhttpapi', version='${version}')
)
)

二. 使用

4. 配置

有两个地方需要你进行配置:

  • 酷Q的HTTP TO CQ
  • 你需要启动的Java程序

从Java的配置开始吧。

由于目前文件配置尚比较繁琐,便暂时先只介绍代码配置的方式。如果对目前的较为繁琐的文件配置有兴趣,请在了解代码配置的情况下查看 文件配置方式

首先,创建一个类,实现com.forte.qqrobot.component.forhttpapi.HttpApp接口,并实现接口中的beforeafter方法。

现在假定你这个类叫做 RunApp , 方便后续的代称。当然,它实际上叫做什么都无所谓。

可以发现,before方法中存在一个叫做HttpConfiguration的参数,我们就要通过这个参数对象进行配置。
以下我将会列举最常见的几项配置信息,而全面的配置可选项请查看核心通用配置组件额外配置

关于HTTP TO CQ的配置与Java程序的配置信息,我简单画了这么一个对应关系图:
如何使用Java开发QQ机器人 方法二

!!! 千万别忘了写端口号! 插件的提交地址的默认值并没有写端口号,这是个坑 !!!

5. 运行

历尽千辛万苦,终于到了这一步。
首先,新建一个main方法在任意地方。
写下以下代码,并且别忘了那个RunApp实际上代表了什么:

HttpApplication application = new HttpApplication();
// 启动
application.run(new RunApp());

[success] 如果这时候一看到控制台所输出的日志中最终出现了你的机器人的一些信息,那么恭喜,这说明你已经发送、获取、设置消息了。

那么能不能监听到消息呢?写一些代码来测试一下吧。

6. 第一个监听器

①. 新建一个类

[info] 尽量在RunApp的同级目录或者子级目录下创建。
创建好之后,在这个类上标注一个注解:@com.forte.qqrobot.anno.depend.Beans, 即@Beans

②. 写一个监听私信的方法

我们写一个监听私信消息满足正则:hello.*的私信消息监听函数,且当我们收到消息后,复读。
完整代码如下:

@Beans
public class TestListener {

    @Listen(MsgGetTypes.privateMsg)
    @Filter("hello.*")
    public void testListen1(PrivateMsg msg, MsgSender sender) {
        System.out.println(msg);
        // 以下三种方法均可,效果相同
        sender.SENDER.sendPrivateMsg(msg, msg.getMsg());
//        sender.SENDER.sendPrivateMsg(msg.getQQ(), msg.getMsg());
//        sender.SENDER.sendPrivateMsg(msg.getQQCode(), msg.getMsg());
    }
}

③. 在来一次

这次我们再启动一次,如果发现启动日志中成功加载了这个监听函数,那就试着给你的机器人发送一句hello world吧。
如果它也回复了你一句hello world,那么说明至此你已经成功了,探索文档所提供的众多功能并实现你的机器人吧~

7. 失败了?

如果跟着上述流程完整无误的操作却无法成功,也不要气馁,尝试根据常见问题汇总进行排查或者加入QQ群782930037进行咨询。

相关标签: java CQ