今天来讲一下 Java项目中利用钉钉机器人Webhook向钉钉群推送告警通知

一、配置钉钉群

1、新建一个接收通知的钉钉群

如下图,创建一个接收通知的钉钉群

选择项目群,点创建

输入群名称,右侧选择群成员,最后点击右下角的创建

2、对群进行设置

点群右上角的设置按钮

点击 “智能群助手”

点 “添加机器人”

点 添加机器人 最右边的 “+”  加号

选最后的 自定义 通过Webhook接入自定义服务

点 添加

输入机器人名字,安全设置里输入自定义的关键字

注意注意:这个自定义关键字必须输入,而且等下在代码里发送消息时,消息的内容体里,必须包含这个关键字,否则钉钉会返回 消息发送失败

点 完成

完成后,会出现下图的画面,点击 复制,把生成的 Webhook复制一下,最后点击 完成

完成后,会进入下边的页面

到这里,钉钉群的配置就完成了

二、Java代码的编写

钉钉群配置好,拿到Webhook的值后,就可以在java代码里调用钉钉的消息推送了

下面贴一下代码

import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.Map;/*** @描述 异常告警钉钉通知* @创建人 caoju* @创建时间 2022/1/15 9:03*/
@Slf4j
public class SendDDMessage {//这里就是刚才拿到的Webhook的值public static final String DING_DING_TOKEN ="https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";public static void sendDDMessage(String msg){//钉钉的webhook//请求的JSON数据,这里用map在工具类里转成json格式Map<String,Object> json=new HashMap();Map<String,Object> text=new HashMap();json.put("msgtype","text");text.put("content","项目告警通知:"+msg);json.put("text",text);//发送post请求String response = SendHttps.sendPostByMap(DING_DING_TOKEN, json);log.error("项目告警发送钉钉,响应结果:{}",response);}}
import com.alibaba.fastjson.JSON;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;/*** @描述 发送http请求的工具类* @创建人 caoju* @创建时间 2022/1/15 8:56*/public class SendHttps {private static Logger logger = LoggerFactory.getLogger(SendHttps.class);/*** 发送POST请求,参数是Map, contentType=x-www-form-urlencoded** @param url* @param mapParam* @return*/public static String sendPostByMap(String url, Map<String, Object> mapParam) {Map<String, String> headParam = new HashMap();headParam.put("Content-type", "application/json;charset=UTF-8");return sendPost(url, mapParam, headParam);}/*** 向指定 URL 发送POST方法的请求** @param url   发送请求的 URL* @param param 请求参数,* @return 所代表远程资源的响应结果*/public static String sendPost(String url, Map<String, Object> param, Map<String, String> headParam) {PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性 请求头conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Fiddler");if (headParam != null) {for (Entry<String, String> entry : headParam.entrySet()) {conn.setRequestProperty(entry.getKey(), entry.getValue());}}// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流out = new PrintWriter(conn.getOutputStream());// 发送请求参数out.print(JSON.toJSONString(param));// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {logger.info("发送 POST 请求出现异常!" + e);e.printStackTrace();}//使用finally块来关闭输出流、输入流finally {try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}
}

三、测试发送钉钉通知

写好代码后,下面我们写一个测试类,来测试发送一下钉钉群的通知

/*** @描述* @创建人 caoju* @创建时间 2022/1/15 10:19*/
public class SendMessageTest {public static void main(String[] args) {SendDDMessage.sendDDMessage("测试项目告警通知!!!");}}

点击运行后,可以看到,刚才创建的钉钉群已经收到了我们推送的测试消息

铁子们,如果觉得文章对你有所帮助,可以点关注,点赞

也可以关注下公众号:扫码 或 wx搜索:“聊5毛钱的java” ,欢迎一起学习交流,关注公众号可领取博主的Java学习视频+资料,保证都是干货

3Q~

纯手敲原创不易,如果觉得对你有帮助,可以打赏支持一下,哈哈,感谢~

 

Java项目中利用钉钉机器人Webhook向钉钉群推送告警通知相关推荐

  1. java聊天室小程序论文_在Java项目中利用continue与break制作一个聊天室小程序

    在Java项目中利用continue与break制作一个聊天室小程序 发布时间:2020-12-08 16:03:27 来源:亿速云 阅读:98 作者:Leah 在Java项目中利用continue与 ...

  2. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

  3. 【Java项目中 利用Redis实现数据缓存】

    文章目录 Java SpringBoot项目中 用Redis实现数据缓存 1 环境搭建 1.1 maven坐标 1.2 配置文件 1.3 配置类 2 实现缓存短信验证码 3 缓存菜品数据 4 Spri ...

  4. 【已解决】Java 项目中利用 Redis 配合 Lua 脚本对短信推送消息做推送限制

  5. spring mvc项目中利用freemarker生成自定义标签

    2019独角兽企业重金招聘Python工程师标准>>> spring mvc项目中利用freemarker生成自定义标签 博客分类: java spring mvc +freemar ...

  6. Ant在Java项目中的使用(一眼就看会)

    参考:http://www.cnblogs.com/zhengqiang/p/5557155.html Ant是跨平台的构建工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将A ...

  7. java读excel乱码,【java 项目中,上传的excel打开时无法正常打开,显示乱码 ,怎样可以正常打开,】java读取excel乱码...

    java 项目中,上传的excel打开时无法正常打开,显示乱码 ,怎样可以正常打开, 1.转换格就是将受损的Excel XP簿另存格式选为SYLK.如果可以打开受件,只是不能进行各种编辑和打印操作,那 ...

  8. 基于AI的计算机视觉识别在Java项目中的使用(三) —— 搭建基于Docker的深度学习训练环境

    深度学习在哪里? 我们已然生活在数字时代,一天24小时我们被数字包围.我们生活中的方方面面都在使用数字来表达.传递.存储.我们无时无刻不在接收数字信息,而又无时无刻不在生产数字信息. 在数字世界中,可 ...

  9. Java项目中Ehcache的使用

    在项目中,我们经常会用到缓存,合理的利用缓存可以提高代码工作的效率,减少不必要的重复工作.这篇文章主要是介绍Ehcache在Java项目中的简单上手.以下为步骤: 1. 引入jar包: ① 可以通过m ...

最新文章

  1. 44.作用域,局部和全局变量
  2. 探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用23
  3. HDU 3954 Level up(线段树)
  4. 跟随鼠标走的文字的html代码,跟随鼠标走的文字的HTML代码
  5. 一个跨国银行的敏捷转型案例要点之Agile Center
  6. mysql buffer_mysql read_buffer_size 设置多少合适
  7. 划入 .NET 6版本目标,微软鼓励开发人员信任第三方库
  8. oracle9i 随机端口_修改 Oracle9i 8080端口问题
  9. Android安全笔记-Tasks与Recents Screen与Fragment基本概念
  10. redis主从复制_Redis 的主从复制(Master/Slave)
  11. 构建可扩展的思科互联网络---多区域OSPF
  12. Mapbox使用之glyphs(字体符号)
  13. 网络经商22条赚钱法则
  14. 通过分析134家企业征信牌照机构可见企业征信备案之难
  15. 将阿拉伯数字转换成罗马数字 Integer to Roman
  16. 当年腾讯为什么从QQ转移扶植到微信,如今微信已撑起腾讯半壁江山
  17. Github/gitee 上传文件最大100MB限制this exceeds file size limit of 100.0 MB
  18. 高斯-克吕格投影与地形图分带
  19. 谁还不会用python做小游戏了?做个马里奥分分钟解决
  20. 自然语言处理之词嵌入(Word Embedding)

热门文章

  1. 2021巢湖第一中学高考成绩查询,2021年巢湖高中学校排名及录取分数线排名
  2. 2017校招信息每日汇总(更新至8.4)
  3. 如何上联想官网查询服务器配置信息,联想服务器型号联想服务器如何鉴别!
  4. h5实现地图定位签到
  5. centos内核是linux吗,CentOS各版本的内核版本分别是什么?
  6. 数据分析-前置条件(采集、存储、治理)
  7. 安卓开发——android8.0应用崩溃,报错: Only fullscreen opaque activities can request orientation
  8. 【语音之家】AI产业沙龙—火山语音在AI视频译制方向的技术探索与实践
  9. java 笔记本i7 i5_笔记本i7低压cpu性能抵不过i5标压cpu,为什么还叫i7
  10. ♠Linux命令随笔