文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringBoot怎么接入钉钉自定义机器人预警通知

2023-07-02 18:28

关注

本篇内容主要讲解“SpringBoot怎么接入钉钉自定义机器人预警通知”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么接入钉钉自定义机器人预警通知”吧!

1、使用pom安装依赖

<dependency>    <groupId>com.alibaba</groupId>    <artifactId>fastjson</artifactId>    <version>1.2.8</version></dependency>

2、发送机器人消息规则

SpringBoot怎么接入钉钉自定义机器人预警通知

SpringBoot怎么接入钉钉自定义机器人预警通知

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.*; @Slf4jpublic class DingDingMsgSendUtils {          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);        }    }         public static void sendDingDingGroupMsg(String accessToken, String content) {        String textMsg = "{ \"msgtype\": \"text\", \"text\": {\"content\": \"" + content + "\"}}";        dealDingDingMsgSend(accessToken, textMsg);    }         public static void sendDingDingGroupMsg(String accessToken, String content, String atPhone) {        content = content.replace("\"", "'");        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());        }     } }
import lombok.Getter; @Getterpublic 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;    } }
import lombok.Getter; @Getterpublic 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;    }}
import lombok.Data;import java.util.List; @Datapublic class AtDto {    private List<String> atMobiles;    private Boolean isAtAll = false;}
import lombok.Data; @Datapublic class MsgDto {    private String msgtype;    private TextDto text;    private  AtDto at; }
import lombok.Data;@Datapublic class TextDto {    private String content;}
异常捕获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;

4、 结果演示

SpringBoot怎么接入钉钉自定义机器人预警通知

到此,相信大家对“SpringBoot怎么接入钉钉自定义机器人预警通知”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯