Python 官方文档:入门教程 => 点击学习
目录1、使用pom安装依赖2、发送机器人消息规则3、钉钉消息发送代码4、 结果演示1、使用pom安装依赖 <dependency> <groupId>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastJSON</artifactId>
<version>1.2.8</version>
</dependency>
钉钉公开api
https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx
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.*;
@Slf4j
public 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;
@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;
}
}
import lombok.Getter;
@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;
}
}
import lombok.Data;
import java.util.List;
@Data
public class AtDto {
private List<String> atMobiles;
private Boolean isAtAll = false;
}
import lombok.Data;
@Data
public class MsgDto {
private String msgtype;
private TextDto text;
private AtDto at;
}
import lombok.Data;
@Data
public 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;
到此这篇关于SpringBoot接入钉钉自定义机器人预警通知的文章就介绍到这了,更多相关SpringBoot钉钉机器人预警内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: SpringBoot接入钉钉自定义机器人预警通知
本文链接: https://lsjlt.com/news/164312.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0