瀏覽代碼

添加钉钉工具类

tianboguang 3 年之前
父節點
當前提交
27d15caa58

+ 40 - 0
4dkankan-utils-dingtalk/pom.xml

@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>4dkankan-utils</artifactId>
+        <groupId>com.fdkankan</groupId>
+        <version>2.0.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>4dkankan-utils-dingtalk</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fdkankan</groupId>
+            <artifactId>4dkankan-common-utils</artifactId>
+            <version>2.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-beans</artifactId>
+        </dependency>
+        <!-- 钉钉sdk -->
+        <dependency>
+            <groupId>com.dingtalk.open</groupId>
+            <artifactId>taobao-sdk-java-auto</artifactId>
+            <version>1479188381469-20211020</version>
+        </dependency>
+    </dependencies>
+
+</project>

+ 71 - 0
4dkankan-utils-dingtalk/src/main/java/com/fdkankan/dingtalk/DingDingUtils.java

@@ -0,0 +1,71 @@
+package com.fdkankan.dingtalk;
+
+import com.dingtalk.api.DefaultDingTalkClient;
+import com.dingtalk.api.DingTalkClient;
+import com.dingtalk.api.request.OapiRobotSendRequest;
+import com.dingtalk.api.response.OapiRobotSendResponse;
+import com.fdkankan.common.util.Base64Converter;
+import com.taobao.api.ApiException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+
+@Component
+public class DingDingUtils {
+
+    private static final Logger log = LoggerFactory.getLogger(DingDingUtils.class);
+
+    private static String token;
+
+    private static String secret="SECca5af660ed882a67d8bda469095bf8454831528bd25bc7b1a3ff5f686109b9e5";
+
+    @Value("${dingtalk.token:e712c41d917b303e21c1550ad9966b33dad874043f2f73fb347dce67a0a201bc}")
+    public void setToken(String token) {
+        DingDingUtils.token = token;
+    }
+
+    @Value("${dingtalk.secret:SECca5af660ed882a67d8bda469095bf8454831528bd25bc7b1a3ff5f686109b9e5}")
+    public void setSign(String secret) {
+        DingDingUtils.secret = secret;
+    }
+
+
+    public static void sendActioncardMsgToDingRobot(String content,String title) throws ApiException, UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException {
+        Long timestamp = System.currentTimeMillis();
+        String sign = getSign(timestamp);
+        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?" +
+                "access_token="+token +
+                "&timestamp=".concat(String.valueOf(timestamp)).concat("&sign=").concat(sign));
+        OapiRobotSendRequest request = new OapiRobotSendRequest();
+        request.setMsgtype("actionCard");
+        OapiRobotSendRequest.Actioncard actioncard = new OapiRobotSendRequest.Actioncard();
+        actioncard.setTitle(title);
+        actioncard.setText(content);
+        request.setActionCard(actioncard);
+        OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
+        at.setAtMobiles(new ArrayList<>(0));
+        // isAtAll类型如果不为Boolean,请升级至最新SDK
+        at.setIsAtAll(true);
+        request.setAt(at);
+        OapiRobotSendResponse re = client.execute(request);
+        System.out.println(re.getBody());
+    }
+
+    public static String getSign(Long timestamp) throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {
+        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"));
+        System.out.println(new String(signData));
+        return URLEncoder.encode(Base64Converter.encode(signData));
+    }
+}

+ 1 - 0
pom.xml

@@ -11,6 +11,7 @@
         <module>4dkankan-utils-fyun</module>
         <module>4dkankan-utils-fyun</module>
         <module>4dkankan-utils-sms</module>
         <module>4dkankan-utils-sms</module>
         <module>4dkankan-utils-app-push</module>
         <module>4dkankan-utils-app-push</module>
+        <module>4dkankan-utils-dingtalk</module>
     </modules>
     </modules>
 
 
     <groupId>com.fdkankan</groupId>
     <groupId>com.fdkankan</groupId>