Heim > Java > javaLernprogramm > So greifen Sie mit SpringBoot auf die benutzerdefinierte Roboterwarnungsbenachrichtigung von DingTalk zu

So greifen Sie mit SpringBoot auf die benutzerdefinierte Roboterwarnungsbenachrichtigung von DingTalk zu

WBOY
Freigeben: 2023-05-15 12:13:06
nach vorne
1735 Leute haben es durchsucht

1、使用pom安装依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.8</version>
</dependency>
Nach dem Login kopieren

2、发送机器人消息规则

So greifen Sie mit SpringBoot auf die benutzerdefinierte Roboterwarnungsbenachrichtigung von DingTalk zu

So greifen Sie mit SpringBoot auf die benutzerdefinierte Roboterwarnungsbenachrichtigung von DingTalk zu

3、钉钉消息发送代码

import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONSerializer;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
 
import java.util.*;
 
/**
 * @Author: yansf
 * @Description:钉钉消息发送工具类
 * @Date: 10:44 AM 2019/6/12
 * @Modified By:
 */
@Slf4j
public class DingDingMsgSendUtils {
 
 
    /**
     * 处理发送的钉钉消息
     *
     * @param accessToken
     * @param textMsg
     */
    private static void dealDingDingMsgSend(String accessToken, String textMsg) {
        HttpClient httpclient = HttpClients.createDefault();
        String WEBHOOK_TOKEN = "https://oapi.dingtalk.com/robot/send?access_token=" + accessToken;
        HttpPost httppost = new HttpPost(WEBHOOK_TOKEN);
        httppost.addHeader("Content-Type", "application/json; charset=utf-8");
 
        StringEntity se = new StringEntity(textMsg, "utf-8");
        httppost.setEntity(se);
 
        try {
            HttpResponse response = httpclient.execute(httppost);
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                String result = EntityUtils.toString(response.getEntity(), "utf-8");
                log.info("【发送钉钉群消息】消息响应结果:" + JSON.toJSONString(result));
            }
        } catch (Exception e) {
            log.error("【发送钉钉群消息】error:" + e.getMessage(), e);
        }
    }
 
    /**
     * 发送钉钉群消息
     *
     * @param accessToken
     * @param content
     */
    public static void sendDingDingGroupMsg(String accessToken, String content) {
        String textMsg = "{ \"msgtype\": \"text\", \"text\": {\"content\": \"" + content + "\"}}";
        dealDingDingMsgSend(accessToken, textMsg);
    }
 
    /**
     * 发送钉钉群消息(可以艾特人)
     *
     * @param accessToken 群机器人accessToken
     * @param content     发送内容
     * @param atPhone     艾特人电话,如:176********,156********,
     */
    public static void sendDingDingGroupMsg(String accessToken, String content, String atPhone) {
        content = content.replace("\"", "&#39;");
        String textMsg = "";
 
//        String textMsg = "{\n" +
//                "    \"msgtype\": \"text\", \n" +
//                "    \"text\": {\n" +
//                "        \"content\": \"" + content + "\"\n" +
//                "    }, \n" +
//                "    \"at\": {\n" +
//                "        \"atMobiles\": [\n" +
//                "            " + atPhone +
//                "        ], \n" +
//                "        \"isAtAll\": false\n" +
//                "    }\n" +
//                "}";
 
        MsgDto msgDto = new MsgDto();
        msgDto.setMsgtype("text");
 
        TextDto textDto = new TextDto();
        textDto.setContent(content);
        msgDto.setText(textDto);
 
        AtDto atDto = new AtDto();
        atDto.setIsAtAll(false);
 
        List<String> result = Arrays.asList(atPhone.split(","));
        atDto.setAtMobiles(result);
        msgDto.setAt(atDto);
 
        textMsg = JSONSerializer.toJSON(msgDto).toString();
        System.out.println(textMsg);
        dealDingDingMsgSend(accessToken, textMsg);
    }
 
 
    public static void main(String[] args) {
        try {
            int s = Integer.parseInt("df12");
//            System.out.println(1 / 0);
        } catch (Exception e) {
            //e.printStackTrace();
            sendDingDingGroupMsg(DingTokenEnum.SEND_SMS_BY_DEVELOPER_TOKEN.getToken(), "【JAVA系统消息】钉钉消息推送测试,by:闫淑芳..." + e, DingMsgPhoneEnum.DEVELOPER_PHONE_yansf.getPhone());
        }
 
    }
 
}
Nach dem Login kopieren
import lombok.Getter;
 
/**
 * @Author: yansf
 * @Description:钉钉消息接收用户,配置钉钉绑定的电话即可
 * @Date: 10:44 AM 2019/6/12
 * @Modified By:
 */
@Getter
public enum DingMsgPhoneEnum {
    GENERAL_PURPOSE("176*****983", "bug不存在的"),
    DEVELOPER_PHONE_yansf("176*****983", "yansf"),
    DEVELOPER_PHONE_all("176*****983,176*****982,176*****981,176*****980", "all"),
    PRODUCT_PERSONNEL_PHONE("", "产品人员"),
    DATA_ANALYST_PHONE("", "数据分析人员");
    private String phone;
    private String name;
    DingMsgPhoneEnum(String phone, String name) {
        this.phone = phone;
        this.name = name;
    }
 
}
Nach dem Login kopieren
import lombok.Getter;
 
/**
 * @Author: yansf
 * @Description:钉钉消息群机器人access_token
 * @Date: 10:45 AM 2019/6/12
 * @Modified By:
 */
@Getter
public enum DingTokenEnum {
    SEND_SMS_BY_DEVELOPER_TOKEN("此处自己申请token", "系统消息通知,技术专用");
    private String token;
    private String name;
    DingTokenEnum(String token, String name) {
        this.token = token;
        this.name = name;
    }
}
Nach dem Login kopieren
import lombok.Data;
import java.util.List;
 
/**
 * @Author: yansf
 * @Description:
 * @Date:Creat in 2:13 PM 2019/6/12
 * @Modified By:
 */
@Data
public class AtDto {
    private List<String> atMobiles;
    private Boolean isAtAll = false;
}
Nach dem Login kopieren
import lombok.Data;
 
/**
 * @Author: yansf
 * @Description:
 * @Date:Creat in 2:13 PM 2019/6/12
 * @Modified By:
 */
@Data
public class MsgDto {
    private String msgtype;
    private TextDto text;
    private  AtDto at;
 
}
Nach dem Login kopieren
import lombok.Data;
/**
 * @Author: yansf
 * @Description:
 * @Date:Creat in 2:13 PM 2019/6/12
 * @Modified By:
 */
@Data
public class TextDto {
    private String content;
}
Nach dem Login kopieren
异常捕获
try{
//todo
} catch (Exception ex) {
DingDingMsgSendUtils.sendDingDingGroupMsg(DingTokenEnum.SEND_SMS_BY_DEVELOPER_TOKEN.getToken(), "***异常," + profile + "环境,errorMsg=" + ex, DingMsgPhoneEnum.DEVELOPER_PHONE_yansf.getPhone());
}

profile配置
@Value("${spring.profiles.active}") private String profile;
Nach dem Login kopieren

4、 结果演示

So greifen Sie mit SpringBoot auf die benutzerdefinierte Roboterwarnungsbenachrichtigung von DingTalk zu

Das obige ist der detaillierte Inhalt vonSo greifen Sie mit SpringBoot auf die benutzerdefinierte Roboterwarnungsbenachrichtigung von DingTalk zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage