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知识库 -> 钉钉群自定义机器人消息推送spring boot starter封装组件 -> 正文阅读

[Java知识库]钉钉群自定义机器人消息推送spring boot starter封装组件

介绍

根据官方文档:https://open.dingtalk.com/document/group/custom-robot-access

封装了一个spring boot starter:https://github.com/kangaroo1122/dingtalk-spring-boot-starter

目前已上传至maven中央仓库,当前最新版为:1.0.2

或查看这个地址找到最新版本:https://search.maven.org/artifact/com.kangaroohy/dingtalk-spring-boot-starter

<dependency>
  <groupId>com.kangaroohy</groupId>
  <artifactId>dingtalk-spring-boot-starter</artifactId>
  <version>1.0.2</version>
</dependency>

当前自定义机器人支持以下消息类型:

  • 文本 (text)
  • 链接 (link)
  • markdown(markdown)
  • ActionCard
  • FeedCard

具体参见前文提到的官方文档,组件支持以上所有类型的消息发送

使用

由于官方限制,每个机器人只能发送20条/分钟的消息,所以这里支持配置多个机器人来轮询或者随机指定机器人发送消息

在这里插入图片描述

默认机器人配置

无论单机器人还是多机器人,都必须配置一个默认机器人

kangaroohy:
  ding-talk:
    access-token: d4a24b6ea884d5d3ec245fb95e9cdbc3630
    secret: SEC8cc743fc2286f5209f1162d72131f47515843fc0cea661152bd

单机器人使用

直接注入 IDingTalkSender 类,调用相关的方法即可

    @Autowired
    private IDingTalkSender talkSender;

	//text类型
    talkSender.send(TextArgs.builder().content("自定义封装测试").atMobiles(Lists.newArrayList("133xxxx7608")).build());

	//markdown类型
    talkSender.send(MarkdownArgs.builder().title("markdown测试")
        .text("### andon通知\n - 工位: station\n - 故障: content")
        .build());

	//link类型
    talkSender.send(LinkArgs.builder().title("link").text("这是一条link消息")
        .picUrl("https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/9977602461/p352641.png")
        .messageUrl("https://open.dingtalk.com/document/group/robot-overview")
        .pcSlide(true)
        .build());

	//整体跳转ActionCard类型
    talkSender.send(ActionCardWholeArgs.builder()
        .singleTitle("测试")
        .text("消息内容")
        .title("ActionCard")
        .singleUrl("https://open.dingtalk.com/document/group/robot-overview").build());

	//独立跳转ActionCard类型
    talkSender.send(ActionCardAloneArgs.builder()
        .btnOrientation(BtnOrientation.VERTICAL)
        .btns(Lists.newArrayList(
            CardButtonArgs.builder().title("测试1").actionUrl("https://open.dingtalk.com").pcSlide(true).build(),
            CardButtonArgs.builder().title("测试2").actionUrl("https://open.dingtalk.com").pcSlide(true).build(),
            CardButtonArgs.builder().title("测试2").actionUrl("https://open.dingtalk.com").pcSlide(true).build()
        ))
        .title("消息标题").text("消息内容").build());

	//FeedCard类型
    talkSender.send(FeedCardArgs.builder()
        .links(Lists.newArrayList(
            CardLinksArgs.builder().title("测试1").messageUrl("https://open.dingtalk.com").pcSlide(true)
                .picUrl("https://img.alicdn.com/imgextra/i4/O1CN01oWsqXJ1VSf8Bj1DVs_!!6000000002652-2-tps-588-200.png").build(),
            CardLinksArgs.builder().title("测试2").messageUrl("https://open.dingtalk.com").pcSlide(true)
                .picUrl("https://img.alicdn.com/imgextra/i4/O1CN01oWsqXJ1VSf8Bj1DVs_!!6000000002652-2-tps-588-200.png").build(),
            CardLinksArgs.builder().title("测试3").messageUrl("https://open.dingtalk.com").pcSlide(true)
                .picUrl("https://img.alicdn.com/imgextra/i4/O1CN01oWsqXJ1VSf8Bj1DVs_!!6000000002652-2-tps-588-200.png").build()
        ))
        .build());

多机器人使用

多机器人使用时,需配置对应的机器人群组信息

这里采用ApplicationRunner,项目启动完成,查询数据库并机器人信息添加到配置

算法部分参考了项目:https://github.com/AnswerAIL/dingtalk-spring-boot-starter

@Component
public class RobotConfig implements ApplicationRunner {
    @Autowired
    private IMultipleRobot multipleRobot;
    
    //这里可以注入数据库查询service进行查询配置

    @Override
    public void run(ApplicationArguments args) throws Exception {
        multipleRobot.addGroupRobot(
                GroupArgs.builder()
                        .groupId("111")
                        .dingTalkArgs(Lists.newArrayList(
                                DingTalkArgs.builder().accessToken("d4a24b6ea8849ee30bb65638fc6e880d3ec245fb95e9cdbc3630")
                                        .secret("SEC8cc743fc2286f5209f11623a0bff18d131f47515843fc0cea661152bd").build(),
                                DingTalkArgs.builder().accessToken("421b36a2e9e3103ea41efef6458982526ca46f87f389753cdf5df")
                                        .secret("SEC3f1ed3e72a0582c40d27ab3a85cd3b8bd0710bd04be3de3fe0a2d6d").build(),
                                DingTalkArgs.builder().accessToken("15a2dba92b815a2fac9231622c8ae0c3d8e9d7cfe3ce5e2ee1549")
                                        .secret("SEC475ecf41acaa4f1dabe7d32f06e20d2e277307d967c05d4d50e52d69").build()
                        ))
                        //轮询算法处理消息发送,内置了四种算法,可自定义算法
                        .algorithmHandler(new RoundRobinHandler())
                        .build()
        );
    }
}

调用与单机器人一样,注入IDingTalkSender,发送消息时指定群组ID即可

    @Autowired
    private IDingTalkSender talkSender;

    talkSender.send(TextArgs.builder().content("群组机器人测试1").build(), "111");
    talkSender.send(TextArgs.builder().content("群组机器人测试2").build(), "111");
    talkSender.send(TextArgs.builder().content("群组机器人测试3").build(), "111");
    talkSender.send(TextArgs.builder().content("群组机器人测试4").build(), "111");
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:07:52  更:2022-07-17 16:11:17 
 
开发: 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/23 15:49:15-

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