0
点赞
收藏
分享

微信扫一扫

JAVA 实现钉钉机器人预警推送功能

夏沐沐 2022-12-03 阅读 87


快速使用钉钉机器人对项目进行预警处理

  1. 获取 Hook地址 中的 access_token 值, 即将作为第 5 步中的 tokenId 值。 ​​如何获取 Hook 地址?​​
  2. ​​dingtalk.warn-1.0.jar 包下载​​
  3. 将下载的jar包 dingtalk.warn-1.0.jar 放到项目根目录的lib目录下
  4. 添加 jar 包依赖

<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>

<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.12.1</version>
</dependency>

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.0.1-jre</version>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>

<!-- 将 dingtalk.warn-1.0.jar 放在项目根目录的 lib 目录下 -->
<dependency>
<groupId>com.answer</groupId>
<artifactId>dingtalk.warn</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/dingtalk.warn-1.0.jar</systemPath>
</dependency>
</dependencies>

  1. 实现 IDingTalk 接口(模板如下)

public enum MyDingTalk implements IDingTalk {
/** */
MY_PROJECT {
@Override
public String tokenId() {
// 请根据实际情况填写
return null;
}

@Override
public String title() {
// 请根据实际情况填写
return null;
}

@Override
public String remarks() {
// 请根据实际情况填写
return null;
}

@Override
public String projectId() {
// 请根据实际情况填写
return null;
}
};
}

 

  1. 推送消息样例

【title】 remarks
- project: projectId
- keyword: abc8ba21d7df4aicaeaal25bed2520ai
- text: java.lang.IndexOutOfBoundsException: Index: 1, Size: 0.

 

  1. 项目中使用(​​测试​​)

public static void main(String[] args) {
try {
List<String> list = Lists.newArrayList();
list.get(1);
} catch (IndexOutOfBoundsException e) {
String response = DingTalkRobotUtils.send(
MyDingTalk.MY_PROJECT,
"abc8ba21dljm4aicaeaal520ycy520ai",
e.toString());

System.out.println(response);
}

}

可结合 ​​Spring全局异常统一处理​​

 

​​DingTalkRobotUtils 工具类方法​​

  • DingTalkRobotUtils.send(IDingTalk dingTalk, String keyword, String content)
  • DingTalkRobotUtils.send(IDingTalk dingTalk, String keyword, String content, List phones)
  • DingTalkRobotUtils.sendAll(IDingTalk dingTalk, String keyword, String content)

keyword 参数值请填写项目中请求的唯一值, 如UUID等, 可根据 keyword 快速定位完整的日志信息

 

Reference

  • ​​钉钉开发文档​​
  • ​​github 源码地址​​


举报

相关推荐

0 条评论