当前位置:   article > 正文

java基于go-cqhttp开发qq机器人_gocqhttp java

gocqhttp java

当使用 Java 搭建 QQ 机器人时,可以借助 go-cqhttp 这个开源的轻量级框架来实现。下面是一个简单的教程,帮助你搭建基于 go-cqhttp 的 QQ 机器人。(全网最流畅,全网最新) 

目录

准备工作

1. 启动qqSign签名服务

Windows标准启动

2. 创建启动JavaDemo项目

3. 启动go-cqhttp

Windows标准启动

4. 结语


准备工作

  1. 下载安装java8并且配置环境变量。
  2. 下载并安装 go-cqhttp。2023-11-16目前官方最新版本是v1.2.0
  3. 下载并安装 qqSign签名服务。目前go-cqhttp官方版本v1.2.0 对应的qSign版本是v1.1.9
  4. 以下JavaDemo及pom依赖svipbot包源码链接:源码参考
  5. 以上资源本人gitee地址:
    链接: gocqhttp-qqsign: 就是gocqhttp和qqsign这个保证能解决你的登录问题

1. 启动qqSign签名服务

Windows标准启动

  1. 进入unidbg-fetch-qsing-*/bin路径下
  2. 地址栏输入cmd回车进入命令窗口
  3. 输入启动命令启动
    1. # host ip
    2. # port 端口
    3. # count 对应几个gocqhttp
    4. # android_id 对应gocqhttp启动后生成的device.json中的android_id,可先不配置任何东西启动gocqhttp从生成的device.json文件中取出android_id
    5. # library 协议版本包 这里是8.9.63也是gocqhttpv1.1.0对应的版本
    6. unidbg-fetch-qsign.bat --host=127.0.0.1 --port=8080 --count=1 --android_id=xxxxxxxxxx --library=..\txlib\8.9.63

2. 创建启动JavaDemo项目

  1. 新建SpringBoot项目。SpringBoot版本使用2.7.7
  2. pom.xml
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0</modelVersion>
    5. <!-- springboot版本 -->
    6. <parent>
    7. <groupId>org.springframework.boot</groupId>
    8. <artifactId>spring-boot-starter-parent</artifactId>
    9. <version>2.7.7</version>
    10. <relativePath/>
    11. </parent>
    12. <!-- 本项目版本信息 -->
    13. <groupId>com.example</groupId>
    14. <artifactId>demo</artifactId>
    15. <version>0.0.1-SNAPSHOT</version>
    16. <name>demo</name>
    17. <description>Demo project for Spring Boot</description>
    18. <!-- 依赖jar版本号 -->
    19. <properties>
    20. <java.version>1.8</java.version>
    21. <svipbot.version>0.0.13</svipbot.version>
    22. </properties>
    23. <dependencies>
    24. <!-- springboot svipbot -->
    25. <dependency>
    26. <groupId>cn.svipbot</groupId>
    27. <artifactId>spring-boot-starter-svipbot</artifactId>
    28. <version>${svipbot.version}</version>
    29. </dependency>
    30. <!-- lombok -->
    31. <dependency>
    32. <groupId>org.projectlombok</groupId>
    33. <artifactId>lombok</artifactId>
    34. <optional>true</optional>
    35. </dependency>
    36. </dependencies>
    37. <!-- 构建 -->
    38. <build>
    39. <plugins>
    40. <plugin>
    41. <groupId>org.springframework.boot</groupId>
    42. <artifactId>spring-boot-maven-plugin</artifactId>
    43. <version>2.7.7</version>
    44. </plugin>
    45. </plugins>
    46. </build>
    47. </project>
  3. TestPlugin.java
    1. package com.example.demo.plugins;
    2. import cn.svipbot.gocq.bot.Bot;
    3. import cn.svipbot.gocq.bot.BotPlugin;
    4. import cn.svipbot.gocq.event.message.GroupMessageEvent;
    5. import cn.svipbot.gocq.event.message.PrivateMessageEvent;
    6. import cn.svipbot.gocq.utils.CqMsg;
    7. import lombok.extern.slf4j.Slf4j;
    8. import org.springframework.stereotype.Component;
    9. /**
    10. * 示例插件
    11. * 1. 插件继承自 BotPlugin
    12. * 2. 添加 @Component 注解
    13. * 3. 添加lombok的@Slf4j打印日志
    14. */
    15. @Slf4j
    16. @Component
    17. public class TestPlugin extends BotPlugin {
    18. /**
    19. * 收到私聊消息时会调用这个方法
    20. *
    21. * @param bot 机器人对象,用于调用API,例如发送私聊消息 sendPrivateMsg
    22. * @param event 事件对象,用于获取消息内容、群号、发送者QQ等
    23. * @return 是否继续调用下一个插件, `MatchedAndBlock` 表示不继续, `NotMatch` 表示继续
    24. */
    25. @Override
    26. public int onPrivateMessage(Bot bot, PrivateMessageEvent event) {
    27. // 获取 发送者QQ 和 消息内容
    28. long userId = event.getUserId();
    29. // 控制台打印
    30. log.info("私聊消息{}", event.getMessage());
    31. // 发送消息
    32. CqMsg cqMsg = new CqMsg();
    33. cqMsg.text("测试私聊");
    34. bot.sendPrivateMsg(userId, cqMsg.toString(), false);
    35. // 继续执行下一个插件
    36. return NotMatch;
    37. }
    38. /**
    39. * 收到群消息时调用此方法
    40. *
    41. * @param bot 机器人对象
    42. * @param event 事件内容
    43. * @return 是否继续调用下一个插件, `MatchedAndBlock` 表示不继续, `NotMatch` 表示继续
    44. */
    45. @Override
    46. public int onGroupMessage(Bot bot, GroupMessageEvent event) {
    47. // 获取 发送者QQ 和 消息内容
    48. long userId = event.getUserId();
    49. // 获取 发送消息的群号
    50. long groupId = event.getGroupId();
    51. // 控制台打印
    52. log.info("群消息{}", event.getMessage());
    53. // 发送消息
    54. CqMsg cqMsg = new CqMsg();
    55. cqMsg.at(userId).text("测试群聊");
    56. bot.sendGroupMsg(groupId, cqMsg.toString());
    57. // 继续执行下一个插件
    58. return NotMatch;
    59. }
    60. public static void main(String[] args) {
    61. System.out.println();
    62. }
    63. }
  4. application.yml
    1. server:
    2. port: 8081
    3. svipbot:
    4. # 请将编写的插件全类名添加在这里
    5. # 在收到消息时会按顺序依次调用以下插件
    6. # 如果前面的插件返回 MatchedAndBlock 则不会继续调用后续插件
    7. # 如果前面的插件返回 NotMatch 则会继续调用后续插件
    8. plugin-list:
    9. - com.example.demo.plugins.TestPlugin
  5. 启动

3. 启动go-cqhttp

Windows标准启动

  1. 双击go-cqhttp_*.exe,根据提示生成运行脚本
  2. 双击运行脚本
  3. config.yml只需关注以下属性配置,其他属性不必关注保持原有配置即可
    1. # 账号相关
    2. account:
    3. # QQ账号
    4. uin: 1233456
    5. # 密码不要为空
    6. password: ''
    7. # qqSign签名服务配置启动的ip+端口
    8. sign-server: 'http://127.0.0.1:8080'
    9. # 消息相关
    10. message:
    11. # 上报数据类型(就是gocqhttp将消息通知给第三方程序的消息类型)
    12. # 可选: string,array 这里配置array
    13. post-format: array
    14. # http超时时间
    15. http-timeout: 25000
    16. # 连接服务列表
    17. servers:
    18. # 反向WS设置
    19. - ws-reverse:
    20. # 反向WS Universal 地址 demo项目启动的ip+端口+以下固定路径,支持在demo中yml配置
    21. universal: ws://127.0.0.1:8888/svipbot/bot/
    22. # 重连间隔 单位毫秒
    23. reconnect-interval: 3000
    24. middlewares:
    25. # 引用默认中间件
    26. <<: *default
  4. 启动go-cqhttp

  5. go-cqhttp启动成功后返回JavaDemo查看控制台已接收到go-cqhttp通知消息

4. 结语

        这篇文章介绍了当下(2023-11-16)的go-cqhttp使用,及基于java实现qq机器人的简单接受私聊消息和群聊消息。

        如果需要继续开发更多功能的机器人,详细需要查看本文JavaDemo的pom依赖中svipbot的源码实现,源码地址已经放到文章开头。

        有任何问题可随时联系作者:201088830,亦可加入群聊学习交流:727289809

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/158444
推荐阅读
相关标签
  

闽ICP备14008679号