IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Java开发QQ机器人 -> 正文阅读

[开发测试]Java开发QQ机器人

很早之前就想过开发一个qq机器人,不过之前一直在想怎么抓包,模拟,最近我朋友给我说了个github的开源项目,再次开工

推荐关闭QQ的设备锁,否则模拟QQ登录可能需要验证,虽然官方有解决方案,不过开发阶段还是太麻烦

项目地址

https://github.com/mamoe/mirai

依赖

https://docs.mirai.mamoe.net/ConfiguringProjects.html
这是我开发使用的版本

<dependency>
    <groupId>net.mamoe</groupId>
    <artifactId>mirai-core-jvm</artifactId>
    <version>2.9.1</version>
</dependency>

核心API文档

https://docs.mirai.mamoe.net/CoreAPI.html

简单使用(几乎包含了常用操作)

public static void main(String[] args) {
    // 配置登录信息
    BotConfiguration configuration=new BotConfiguration();
    configuration.setProtocol(BotConfiguration.MiraiProtocol.ANDROID_PHONE);//configuration可不填都有默认值
    configuration.setWorkingDir(new File("E:\\IDEA\\MyTest6\\src\\main\\resources"));
    //        configuration.setCacheDir();// 设置 工作与缓存目录
    configuration.fileBasedDeviceInfo("qq.json");//设置设备信息 防止重复验证设备信息
    // 日志相关  可以自己处理 或关闭日志
    configuration.noBotLog();// qq操作相关日志
    configuration.noNetworkLog();// 网络相关日志
    Bot bot = BotFactory.INSTANCE.newBot(qq, "password",configuration);
    bot.login();//登录
    JavaMain.afterLogin(bot);
}
public static void afterLogin(Bot bot) {
    long yourQQNumber = qq;
    // subscribe 自定义监听结束时间    subscribeAlways一直监听   subscribeOnce只处理一次
    bot.getEventChannel().subscribeAlways(FriendMessageEvent.class, (event) -> {
        if (event.getSender().getId() == yourQQNumber) {
            event.getSubject().sendMessage(new MessageChainBuilder()
                                           .append(new QuoteReply(event.getMessage()))
                                           .append("Hi, you just said: '")
                                           .append(event.getMessage())
                                           .append("'")
                                           .build()
                                          );
        }
    });
    // 获取基本信息
    ContactList<Friend> friends = bot.getFriends();
    System.out.println(friends);
    ContactList<Group> groups = bot.getGroups();
    System.out.println(groups);
    Friend friend = bot.getFriend(yourQQNumber);
    // 上传图片
    Image image = ExternalResource.uploadAsImage(
        new File("E:\\IDEA\\MyTest6\\src\\main\\resources\\bbs.png"), friend);
    // 构建发送的消息
    MessageChain chain = new MessageChainBuilder()
        .append(new PlainText("string"))
        .append("string") // 会被构造成 PlainText 再添加, 相当于上一行
        .append(AtAll.INSTANCE)
        .append(image)
        .build();
    friend.sendMessage(chain);
}

茉莉聊天机器人(可以用于辅助)

https://mly.app/profile/index.html

项目演示

https://www.bilibili.com/video/BV1694y1Z7pz/

项目地址

https://gitee.com/shaokang123/qq-cmd
注意测试需要修改对应的配置文件
在这里插入图片描述

总结

因为直接用的开源项目,整体没什么难度,不过注意,不要为了图省事让机器人对所有人都应答,否则很快茉莉云api调用次数就干完了

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 23:01:13  更:2022-04-07 23:01:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 1:48:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码