如何使用java实现钉钉机器人消息推送功能
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,小编给大家分享一下如何使用java实现钉钉机器人消息推送功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先建个钉钉群,并
千家信息网最后更新 2025年01月20日如何使用java实现钉钉机器人消息推送功能
小编给大家分享一下如何使用java实现钉钉机器人消息推送功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
先建个钉钉群,并加好机器人
此时,机器人已经添加完毕,接下来编写我们连接机器人小哥的代码
import com.alibaba.fastjson.JSON;import com.google.common.collect.Lists;import com.google.common.collect.Maps;import java.util.List;import java.util.Map;/** * @author yanghao * @version DingTalkTest.java, v 0.1 2019-03-29 11:36 */public class DingTalkTest { public static void main(String[] args){ try { //钉钉机器人地址(配置机器人的webhook) String dingUrl = "https://oapi.dingtalk.com/robot/send?access_token=............"; //是否通知所有人 boolean isAtAll = false; //通知具体人的手机号码列表 ListmobileList = Lists.newArrayList(); //钉钉机器人消息内容 String content = "小哥,你好!"; //组装请求内容 String reqStr = buildReqStr(content, isAtAll, mobileList); //推送消息(http请求) String result = HttpUtil.postJson(dingUrl, reqStr); System.out.println("result == " + result); }catch (Exception e){ e.printStackTrace(); } } /** * 组装请求报文 * @param content * @return */ private static String buildReqStr(String content, boolean isAtAll, List mobileList) { //消息内容 Map contentMap = Maps.newHashMap(); contentMap.put("content", content); //通知人 Map atMap = Maps.newHashMap(); //1.是否通知所有人 atMap.put("isAtAll", isAtAll); //2.通知具体人的手机号码列表 atMap.put("atMobiles", mobileList); Map reqMap = Maps.newHashMap(); reqMap.put("msgtype", "text"); reqMap.put("text", contentMap); reqMap.put("at", atMap); return JSON.toJSONString(reqMap); }}
运行结果如下:
result == {"errmsg":"ok","errcode":0}
钉钉群显示消息:
ok,简单的消息推送,这就完成了!
我们再来测试一下通知所有人和通知具体人
将isAtAll更改为true
//是否通知所有人boolean isAtAll = true;//通知具体人的手机号码列表ListmobileList = Lists.newArrayList();
增加通知人号码列表(注:isAtAll和mobileList 不能同时生效)
//是否通知所有人boolean isAtAll = false;//通知具体人的手机号码列表ListmobileList = Lists.newArrayList();mobileList.add("182********");
再来测试一下特殊符号
换行标识符
/** * 换行标识符 */private static final String NEWLINE = "\n";//钉钉机器人消息内容//String content = "小哥,你好!";StringBuffer sb = new StringBuffer();sb.append("小哥,你好!") .append(NEWLINE) .append("看会书");String content = sb.toString();
emoji图片
先获取emoji图片的unicode编码
编写代码如下:
/** * 苹果unicode编码 */private static final String APPLE = "\ud83c\udf4e";//钉钉机器人消息内容//String content = "小哥,你好!";StringBuffer sb = new StringBuffer();sb.append("小哥,你好!") .append(NEWLINE) .append("看会书") .append(NEWLINE) .append("吃个").append(APPLE);String content = sb.toString();
通常在我们的项目中,作为一些告警加入,方便且实用很有意思的钉钉机器人,很多实用技巧,可以深入去探索一波!
更新于2019-12-05
很多小伙伴留言咨询http请求,这边给大家2个http请求代码
1. maven项目
添加依赖
cn.hutool hutool-all 4.0.12
http请求代码
private static final int timeout = 10000; public static String postJson(String url, String reqStr) { String body = null; try { body = HttpRequest.post(url).body(reqStr).timeout(timeout).execute().body(); } catch (Exception e) { e.printStackTrace(); } return body;}
2. 非maven项目
添加jar包httpclient-xxx.jarcommons-logging-xxx.jar
http请求代码
public static String postJson(String url, String body) { // 创建Httpclient对象 CloseableHttpClient httpClient = createCustomClient(); CloseableHttpResponse response = null; String resultString = null; try { // 创建Http Post请求 HttpPost httpPost = new HttpPost(url); httpPost.addHeader("Content-Type", "application/json"); if (body != null) { httpPost.setEntity(new StringEntity(body, "utf-8")); } // 执行http请求 response = httpClient.execute(httpPost); resultString = EntityUtils.toString(response.getEntity(), "utf-8"); } catch (Exception e) { e.printStackTrace(); } finally { try { if (response != null) { response.close(); } } catch (Exception e) { e.printStackTrace(); } } return resultString; } public static CloseableHttpClient createCustomClient() { RequestConfig defaultRequestConfig = RequestConfig.custom() .setSocketTimeout(120 * 1000) .setConnectTimeout(120 * 1000) .setConnectionRequestTimeout(120 * 1000) .setStaleConnectionCheckEnabled(true) .build(); return HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build(); }
以上是"如何使用java实现钉钉机器人消息推送功能"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
机器
机器人
消息
内容
小哥
代码
你好
号码
所有人
推送
手机
手机号码
篇文章
项目
功能
实用
图片
标识
标识符
编码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
电脑工作招聘什么软件开发
小五软件开发
新华社多媒体 数据库
hana中用什么数据库
崩坏学园3哪个服务器好
两个宝塔同时用同个数据库
孤岛惊魂4连不上服务器怎么玩
查看服务器配置的命令
默认是数据库对象
深圳达农互联网科技股份cio
系统要数据库吗
dnf卡连接服务器
日照数字化城管软件开发系统
extjs与数据库交互
无线网络安全防护策略
亿凯西安软件开发工资
我的世界服务器粉碎机
百思互联网科技
明日之后服务器线路大全
嘉兴哪个服务器性价比高
依申请公开网络安全
富国互联网科技分红
怎么安全的暴露内网数据库
网络安全教学实例
安徽交通软件开发公司
泗洪巨型网络技术市场
智能化软件开发协议
上海上信服网络技术有限公司
移动软件开发下载软件
数据库 人工智能算法