java通过钉钉机器人发消息的实现示例
更新时间:2023年09月07日 15:21:07 作者:小非肥
本文主要介绍了java通过钉钉机器人发消息的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
钉钉自定义机器人使用 加签的配置 发送消息
注意:内部群才可以创建自定义机器人
钉钉网址-自定义机器人创建
1、获得的钉钉配置信息workhook和secret
//url路径 private String URL = "https://oapi.dingtalk.com/robot/send?access_token=08ebaa04f98f7faacbacd80fa879463d85cdccdd6cef184ef01bb5a8b6ae6f6c"; //加签密钥 private String DINGDING_SECRET = "SEC27596efd776991b2f6786270fa59552459f64612b17adf377295669361af3fae";
2、配置加签
配置路径
private String getSign() { Long timestamp = System.currentTimeMillis(); String stringToSign = timestamp + "\n" + DINGDING_SECRET; Mac mac = null; String sign = null; try { mac = Mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(DINGDING_SECRET.getBytes("UTF-8"), "HmacSHA256")); byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8")); sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8"); } catch (Exception e) { throw new IllegalArgumentException("加签处理有误"); } return "×tamp=" + timestamp + "&sign=" + sign; }
3、按照钉钉要求整理json数据结构
如果phone为null则发送普通消息,不为空则发送给特定的人
private JSONObject buildDingDingMessage(String phone, String message) { //2、按要求配置参数格式 JSONObject json = new JSONObject(); json.put("msgtype", "text"); json.put("text", new JSONObject() {{ put("content", message); }}); if (!UtilString.isBlank(phone)) { ArrayList<String> list = new ArrayList<>(); list.add(phone); json.put("at", new JSONObject() {{ put("atMobiles", list.toArray()); }}); } return json; }
@Override public void doSendMessage(String phone, String message) { //1、检查数据 if (UtilString.isBlank(message)) { throw new IllegalArgumentException("请输入钉钉服务机器人要输出的信息"); } //2、配置钉钉信息 JSONObject json = buildDingDingMessage(phone, message); //3、请求 String url = URL + getSign(); String responseText = HttpClient.textBody(url) .json(json.toJSONString()) .connectTimeout(60) .readTimeout(5 * 60) .writeTimeout(5 * 60) .asString(); //无错则不发送日志消息 JSONObject responseJson = JSON.parseObject(responseText); if (!responseJson.getString("errmsg").equals("ok")) { log.error(responseJson.getString("errmsg")); } }
到此这篇关于java通过钉钉机器人发消息的实现示例的文章就介绍到这了,更多相关java 钉钉机器人发消息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java如何通过反射获取Constructor、Field、Method对象
反射指的是对象的反向处理操作,根据对象取得对象的来源信息,在反射的世界里面,看重的不再是一个对象,而是对象身后的组成,下面这篇文章主要给大家介绍了关于Java如何通过反射获取Constructor、Field、Method对象的相关资料,需要的朋友可以参考下2022-06-06SpringBoot监控Tomcat活动线程数来判断是否完成请求处理方式
这篇文章主要介绍了SpringBoot监控Tomcat活动线程数来判断是否完成请求处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-02-02Jenkins如何使用DockerFile自动部署Java项目
这篇文章主要介绍了Jenkins如何使用DockerFile自动部署Java项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-08-08
最新评论