From 7e7678ac55d20144c6ebfb459dafb5a5d80345bd Mon Sep 17 00:00:00 2001 From: huangfeng Date: Wed, 29 May 2024 10:13:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=92=89=E9=92=89?= =?UTF-8?q?=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xymanager_common/pom.xml | 5 ++ .../util/DingTalkPushUtil.java | 53 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 xymanager_common/src/main/java/com/shxy/xymanager_common/util/DingTalkPushUtil.java diff --git a/xymanager_common/pom.xml b/xymanager_common/pom.xml index ad727be..c89bf76 100644 --- a/xymanager_common/pom.xml +++ b/xymanager_common/pom.xml @@ -133,6 +133,11 @@ easyexcel + + com.aliyun + alibaba-dingtalk-service-sdk + 2.0.0 + io.jsonwebtoken diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/DingTalkPushUtil.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/DingTalkPushUtil.java new file mode 100644 index 0000000..bc008d5 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/DingTalkPushUtil.java @@ -0,0 +1,53 @@ +package com.shxy.xymanager_common.util; + +import com.dingtalk.api.DefaultDingTalkClient; +import com.dingtalk.api.DingTalkClient; +import com.dingtalk.api.request.OapiRobotSendRequest; +import com.dingtalk.api.response.OapiRobotSendResponse; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.binary.Base64; + +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import java.net.URLEncoder; + +/** + * 钉钉推送工具类 + */ +@Slf4j +public class DingTalkPushUtil { + + public static final String CUSTOM_ROBOT_TOKEN = "e65e730cba22e320e16926fd4ff19ce787fa2162d065792bb6562c6d4a4cf328"; + public static final String SECRET = "SEC72e5fb1b4ce7f9fed55386040d599035c50f8d2a181ad66bd1277549f0716124"; + public static final String KEY_WORD = "运维告警: "; + + + public static void pushText(String content) { + try { + Long timestamp = System.currentTimeMillis(); + 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"); + + //sign字段和timestamp字段必须拼接到请求URL上,否则会出现 310000 的错误信息 + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?sign=" + sign + "×tamp=" + timestamp); + OapiRobotSendRequest req = new OapiRobotSendRequest(); + /** + * 发送文本消息 + */ + //定义文本内容 + OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text(); + text.setContent(KEY_WORD + content); + //设置消息类型 + req.setMsgtype("text"); + req.setText(text); + OapiRobotSendResponse rsp = client.execute(req, CUSTOM_ROBOT_TOKEN); + } catch (Exception e) { + log.error("钉钉发送失败", e); + } + } + +} +