当前位置: 首页 > news >正文

Spring Boot集成钉钉群通知机器人

文章目录

  • 一、钉钉机器人配置
    • 1)添加机器人
    • 2)添加自定义机器人
    • 3)设置机器人参数
    • 4)添加机器人完成
  • 二、依赖导入
  • 三、工具类封装
  • 四、关键字推送消息测试类
    • 1)测试类
    • 2)程序输出结果:
    • 3)通知结果:
  • 五、加签推送消息测试类
    • 1)修改机器人配置为加签
    • 2)测试类
    • 3)程序输出结果
    • 4)通知结果

一、钉钉机器人配置

1)添加机器人

在这里插入图片描述

2)添加自定义机器人

在这里插入图片描述

3)设置机器人参数

在这里插入图片描述

4)添加机器人完成

注意:完成后,复制出链接,方便后续测试使用;

Webhook链接组成 = https:// + baseUrl + access_token;

例如:https://oapi.dingtalk.com/robot/send?access_token=82995******45d84

在这里插入图片描述

二、依赖导入

<!--dingding-sdk-->
<dependency><groupId>com.aliyun</groupId><artifactId>alibaba-dingtalk-service-sdk</artifactId><version>2.0.0</version>
</dependency>

三、工具类封装

@Slf4j
public class DingDingUtils {public static void send(String url, String msg) {try {//创建钉钉客户端DingTalkClient client = new DefaultDingTalkClient(url);//构建自定义机器人请求OapiRobotSendRequest request = new OapiRobotSendRequest();//设置固定为文字版信息类型request.setMsgtype("text");//构建自定义机器人文字类型请求OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();//调用封装文本信息。text.setContent(msg);request.setText(text);//构建自定义机器人@人范围请求OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();//明确为 true。通知时@所有人at.setIsAtAll(true);request.setAt(at);OapiRobotSendResponse response = client.execute(request);log.info("发送完成,返回值:{}", response.getBody());} catch (ApiException e) {log.error("钉钉接口调用异常:", e);}}}

四、关键字推送消息测试类

1)测试类

@Test
void sendTextTest() {// 钉钉群机器人id号String url = "https://oapi.dingtalk.com/robot/send?access_token=8299504a4255a****************ae4aae697441995f45d84";// hello,为关键字String msg = "hello, 大家好";DingDingUtils.send(url, msg);
}

2)程序输出结果:

在这里插入图片描述

3)通知结果:

在这里插入图片描述

五、加签推送消息测试类

1)修改机器人配置为加签

在这里插入图片描述

2)测试类

@Test
void sendTextTest2() throws Exception {Long timestamp = System.currentTimeMillis();String secret = "SECb2f83dd75fdc0b2***********c50f33ebd36102327e44a8";String stringToSign = timestamp + "\n" + secret;Mac mac = Mac.getInstance("HmacSHA256");mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)),"UTF-8");System.out.println(sign);// 钉钉群机器人id号String baseUrl = "https://oapi.dingtalk.com/robot/send?access_token=8299504a4255a****************ae4aae697441995f45d84";String msg = "这是一条加签测试的消息!";String fullUrl = String.format(baseUrl + "&timestamp=%s&sign=%s", timestamp, sign);DingDingUtils.send(fullUrl, msg);
}

3)程序输出结果

在这里插入图片描述

4)通知结果

在这里插入图片描述

http://www.lryc.cn/news/425804.html

相关文章:

  • SpringAOP 面向切面编程
  • 灵办AI助手Chrome插件全面评测:PC Web端的智能办公利器
  • Rancher 使用 Minio 备份 Longhorn 数据卷
  • useRequest
  • python动画:manim实现多面体的创建
  • 数值计算引擎:搭建远程容器开发环境
  • 二叉搜索树(Binary Search Tree)
  • Yii2框架的初始化及执行流程
  • 2024.1-2024.2pycharm无法打开terminal命令行
  • 50ETF期权移仓是什么?50ETF期权移仓要注意什么?
  • 软件工程概述(上)
  • 阿里云ubuntu系统安装mysql8.0
  • 自己搭建远程桌面服务器-RustDesk 极简版
  • 数字资产是什么?怎么产生?怎么增长?
  • Centos7升级gitlab(17)
  • Zookeeper详解以及常见的高可用关联组件
  • Docker Containerd初体验
  • 开始使用 AWS SAM CLI
  • RK3588 RTL8125BG调试
  • Python自省(机制与函数)
  • 【JavaEE】JVM 内存区域划分,以及 Java 垃圾回收机制引用计数器,可达性分析等
  • Web开发:C# MVC + Session机制实现授权免登录demo
  • 【Qt】QWidget的font属性
  • 每天一个数据分析题(四百八十五)- 统计推断
  • 基于STM32的农业病虫害检测检测系统:OpenCV、MQTT、Flask框架、MySQL(代码示例)
  • 算法日记day 39(动归之打家劫舍)
  • Vue 生命周期详解含demo、面试常问问题案例
  • 表单自定义规则的校验
  • JVM 有哪些垃圾回收算法(回收机制)?
  • 2024年高教社杯数学建模国赛A题思路解析+代码+论文