From 829f629756e5402bcd3e9f6ef1f9c6dbffbabb11 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Wed, 17 Apr 2024 14:46:29 +0800 Subject: [PATCH] 55测试环境 --- src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkUtils.java | 62 ++++++++++++++++++++++++------ 1 files changed, 49 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkUtils.java b/src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkUtils.java index 70ed481..d5d4db7 100644 --- a/src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkUtils.java +++ b/src/main/java/com/xcong/excoin/utils/dingtalk/DingTalkUtils.java @@ -1,10 +1,13 @@ package com.xcong.excoin.utils.dingtalk; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiRobotSendRequest; import com.dingtalk.api.response.OapiRobotSendResponse; +import com.xcong.excoin.configurations.properties.ApplicationProperties; +import com.xcong.excoin.utils.SpringContextHolder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Base64; @@ -20,23 +23,32 @@ **/ @Slf4j public class DingTalkUtils { + private static final String SECRET = "SECbc84fd6c2edb9f2f440f9f969981ca310ba553e7c7994cf68cf26e4607cc5943"; + private static final String URL = "https://oapi.dingtalk.com/robot/send?access_token=54a0d627111f3667f7e98691c15becadb742c4da895e60f6d77392389e49658a"; - private static final String SECRET = "SECc0b73559742b950f07eabbd050c406a6abb3b67d112d3735289e90f58884c543"; + private static final String EXCEPTION_URL = "https://oapi.dingtalk.com/robot/send?access_token=da71769f2b21fe2004f00980a8d8e9c4b9db76a0b8025b6f4d957f55653fea39"; + private static final String EXCEPTION_SECRET = "SECd9169511c38c3643bbda2440b1dcd1d3a57203656186fc2ceb7fcbef18c777ed"; + + + private static DingTalkClient initClient(String url, String secret) throws Exception { + Long timestamp = System.currentTimeMillis(); + String sign = generateSign(timestamp, secret); + url = url + "×tamp=" + timestamp + "&sign=" + sign; + return new DefaultDingTalkClient(url); + } public static void sendActionCard(int type) { log.info("send dingtalk"); - String url = "https://oapi.dingtalk.com/robot/send?access_token=161d5e5b60ae5d6b4c80f2a9c35f9f212961a7c7154aa7e94b99503eca3886b0"; - Long timestamp = System.currentTimeMillis(); + + ApplicationProperties properties = SpringContextHolder.getBean(ApplicationProperties.class); try { - String sign = generateSign(timestamp); - url = url + "×tamp=" + timestamp + "&sign=" + sign; - DingTalkClient client = new DefaultDingTalkClient(url); + DingTalkClient client = initClient(URL, SECRET); OapiRobotSendRequest request = new OapiRobotSendRequest(); request.setMsgtype("actionCard"); OapiRobotSendRequest.Actioncard actionCard = new OapiRobotSendRequest.Actioncard(); - actionCard.setTitle(DingTalkType.getName(type)); + actionCard.setTitle(properties.getProject() + "--" + DingTalkType.getName(type)); actionCard.setBtnOrientation("1"); - actionCard.setText(DingTalkType.getName(type)); + actionCard.setText(properties.getProject() + "--" + DingTalkType.getName(type)); List<OapiRobotSendRequest.Btns> btns = new ArrayList<>(); OapiRobotSendRequest.Btns btn1 = new OapiRobotSendRequest.Btns(); btn1.setTitle("查看详情"); @@ -49,19 +61,43 @@ log.info(JSONObject.toJSONString(response)); } catch (Exception e) { log.error("#dingtalk send error#", e); - } finally { - log.error("#dingtalk finally#"); + } + } + + public static void sendMsg(String title, String msg, Long id) { + try { + String text = "### {} \n\n {}"; + DingTalkClient client = initClient(EXCEPTION_URL, EXCEPTION_SECRET); + + OapiRobotSendRequest request = new OapiRobotSendRequest(); + request.setMsgtype("actionCard"); + OapiRobotSendRequest.Actioncard actionCard = new OapiRobotSendRequest.Actioncard(); + actionCard.setTitle("异常消息"); + actionCard.setBtnOrientation("0"); + actionCard.setText(StrUtil.format(text, title, msg)); + actionCard.setSingleURL("http://123.60.4.127:8880/common/getExceptionMsg?id=" + id); + actionCard.setSingleTitle("查询详情"); + + request.setActionCard(actionCard); + OapiRobotSendResponse response = client.execute(request); + log.info(JSONObject.toJSONString(response)); + } catch (Exception e) { + log.error("#dingtalk send error#", e); } } - private static String generateSign(Long timestamp) throws Exception { - String stringToToken = timestamp + "\n" + SECRET; + private static String generateSign(Long timestamp, String secret) throws Exception { + String stringToToken = timestamp + "\n" + secret; Mac mac = Mac.getInstance("HmacSHA256"); - mac.init(new SecretKeySpec(SECRET.getBytes("UTF-8"), "HmacSHA256")); + mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256")); byte[] signData = mac.doFinal(stringToToken.getBytes("UTF-8")); String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8"); return sign; } + public static void main(String[] args) { +// sendMsg("测试一下", "内容"); + } + } -- Gitblit v1.9.1