当前位置:首页>源码分享>SimBotQQ机器人入门教程

SimBotQQ机器人入门教程

1. QQ机器人入门

​ 现在市面上的QQ机器人挺多的,之前使用的是MyQQ但是考虑到依赖性太强了,对于Java开发人员来说并不是太友好,只能通过http形式去发送请求,所以为了摆脱依赖性,我找到了新的选择。

​ 关于适用于JVM的QQ机器人,我选择了miria,虽然是kotlin写的,但是是能兼容Java的。

​ 相对于一部分开源框架来说,simpler-bot目前我用起来还是比较顺手的,也不避免会有一些问题,比如说一些因为构造方法引发的循环依赖问题,不过这种都可以用@Lazy去解决问题.

1.1使用SimBot前提

  • 滑动验证助手: 第一次在自己电脑使用需要进行滑块验证的登陆,所以要用到这个apk,目前只适合安卓手机,下载地址
  • 认证Demo: 第一次在自己电脑使用可以通过这个demo认证,下载地址

滑块认证可以可用用电脑进行验证(针对没有安卓手机的福音),将链接复制到浏览器打开F12设置成手机模式,然后滑动滑块,获取token复制到控制台输入回车。

1.2 适配于SpringBoot的依赖

<dependency>
    <groupId>love.forte.simple-robot</groupId>
    <artifactId>component-mirai-spring-boot-starter</artifactId>
    <version>2.4.0</version>
</dependency>

1.3 官方文档

SimBot访问官方参考文档

2. 搭建环境以及简单应用

2.1首先新建一个Maven项目,导入相关依赖。

2.2 配置信息

创建启动类以及配置启动信息

<!-- .bot -->
code = 账号
password = 密码

创建启动类以及配置信息

2.3 创建配置类

​ 创建配置类并且加上支持机器人的注解

@EnableSimbot//开启SimBot支持
@Configuration
public class AppConfig {
}

配置类

2.4 基础方法介绍

大体介绍,主要分为三个模块,都可以从MsgSender中获取到

  • 设置信息setter
  • 获取信息getter
  • 发送信息sender

获取消息的两个方法

  • getText()只获取纯文本,过滤掉表情
  • getMsg()获取完整消息

图片格式拼接发送

image-20220829234110217

设置禁言

setter.setGroupBan("群","人员","时间","时间单位")//如若解除禁言“时间=0”即可

定时任务

@Fixed(value=时间,timeUnint=单位,repeat重复次数)

用其他的定时器都可以

过滤器

@Filter(value = "关键词" ,matchType =  MatchType.STARTS_WITH(匹配机制),trim = true(匹配时是否考虑空格))//当然也可以自定义过滤器详情文档都有

2.5 编写简单应用

私聊回复消息

@Component("simpleBotPrivateMsgEvent")
public class SimpleBotPrivateMsgEvent {
    @OnPrivate
    public void doPrivateMsg(PrivateMsg event, MsgSender sender) {
        if (event.getAccountInfo().getAccountCode().equals("1781913075")) {
            System.out.println("===============");
            System.out.println(event.getMsg());
            System.out.println("===============");
        }
    }
}

邀请入群同意并通知主人

3. 相关事件

监听的类型。一般来讲是一个接口类型。
可复数注解同样支持注解继承。但是仅允许在 直接获取 Listen 获取不到的时候才会进行深度获取。
与具体对应的消息相关的有:
PrivateMsg 私聊消息。
GroupMsg 群消息
FriendIncrease 好友增加.
GroupMemberIncrease 群友增加。
GroupMemberPermissionChanged 群成员权限变动事件。
GroupNameChanged 群名称变动事件。
GroupMemberRemarkChanged 群友群名片变动事件。
GroupMemberSpecialChanged 群友头衔变动事件。
FriendNicknameChanged 好友昵称变动事件
FriendAvatarChanged 好友头像变动事件
PrivateMsgRecall 私聊消息撤回。
GroupMsgRecall 群聊消息撤回。
FriendReduce 好友减少事件
GroupMemberReduce 群友减少事件。
FriendAddRequest 好友请求事件。 此时申请人尚未成为好友。
GroupAddRequest 群添加请求。此时申请人尚未入群。
这些监听类型是应该最优先被考虑使用的,也是最被推荐使用的。
除了这些消息类型,它们大多数也存在一些父类型,来代表一个大范围内的消息类型。
MsgGet 所有消息类型的父接口。
EventGet 事件类型的父接口。
MessageGet 与消息有关的事件父接口。
MessageRecallEventGet 与消息撤回有关的事件父接口。
MemberChangesEventGet 成员变动事件父接口。
IncreaseEventGet 与增加有关的事件父接口。
ReduceEventGet 与减少有关的事件父接口。
RequestGet 与请求相关的父接口。
ChangedGet 出现变化的事件相关的父接口。
上述接口并不被优先推荐使用,因为它们可能代表的类型很多,且内容并不全面。
除了消息类型的接口以外,你也可以将他们作为一种 容器 (Container) :
Container 所有容器的父接口。
OriginalDataContainer 原始信息容器。
PermissionContainer 权限容器。
FlagContainer 标识容器。
ActionMotivationContainer 行动动机容器。
BotContainer bot基础信息容器。
AccountContainer 用户基础信息容器。
GroupContainer 群信息容器。
OperatorContainer 操作者信息容器。
BeOperatorContainer 被操作者信息容器。
OperatingContainer 操作相关信息容器。
上述容器相关的类型是不被推荐用来作为监听类型的。
请参阅:
私聊消息。, 群消息, 好友增加., 群友增加。, 群成员权限变动事件。, 群名称变动事件。, 群友群名片变动事件。, 群友头衔变动事件。, 好友昵称变动事件, 好友头像变动事件, 私聊消息撤回。, 群聊消息撤回。, 好

给TA打赏
共{{data.count}}人
人已打赏
Redis

SpringBoot整合Redis

2023-4-8 10:13:36

源码分享

Java程序加密解密源码分享

2022-9-23 13:25:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
有新私信 私信列表
搜索