0、前言
- 需求:实现告警信息推送到企业微信群
- 1)、机器人推送消息
2)、企业微信支持 自建应用 推送消息
1、代码截图
2、pom
<?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>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>98com.ct.wx</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>fluent-hc</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
3、机器人推送
群组管理-添加机器人,复制机器人key=123456abcdefg。可以自定义机器人的名称。
(1)消息vo
- VoWebhookMDMsg2Group
/**
* @Author LaoHa
* @Date 2021/7/12
*/
@Data
public class VoWebhookMDMsg2Group {
String msgtype="markdown";
Object markdown;
}
(2)控制器
- WxController
/**
* 机器人向 群 推送消息
*
* @throws Exception
*/
@PostMapping({"/webhookSendMD"})
public void webhookSendMarkDown() throws Exception {
wxService.webhookSendMarkDown("123456789-cb0d-4cc5-9180-d59cb8af789d", "台湾是中国的领土!", 2);
}
(3)service
- WxService
/**
* 发送Markdown消息
*
* @param message
* @param level
* @throws IOException
*/
public void webhookSendMarkDown(String robotKey, String message, Integer level) throws IOException {
String url = String.format(WxApiUrl.API_WEBHOOK_SEND, robotKey);
VoWebhookMDMsg2Group vo = new VoWebhookMDMsg2Group();
Map<String, String> markdown = new HashMap<>(1);
String content = "**嘀嘀嘀,