通知神器——java调用钉钉群自定义机器人
创建群自定义机器人
在指定钉钉群(或者随便拉两个人建个群,然后把别人T出去)的群设置里选择 群机器人 -> 自定义,如图:

然后,添加机器人,设置名字,添加成功时如下图:

其中webhook非常重要,下文详述。点击设置说明可以看相关使用文档,文档链接见本文末尾。
使用HTTP POST请求发送消息
直接向上文所述的webhook链接发送POST请求已达到自定义机器人向群内发消息的功能
按照文档中所属的参数格式直接向链接发送请求即可,我使用Postman发送请求如下:

效果如下:

发送其他格式(如:链接消息、markdown、ActionCard)的消息效果如下:





确定你需要哪种消息了吗?如果需要使用,通过这种方式来实现,组织参数还是挺麻烦的,不过我们可以使用sdk来简化操作
使用sdk调用自定义机器人
public static void main(String[] args) throws ApiException {
final String serverUrl =
"https://oapi.dingtalk.com/robot/send?access_token=*******************************************************";
DingTalkClient client = new DefaultDingTalkClient(serverUrl);
OapiRobotSendRequest request = new OapiRobotSendRequest();
At at = new At();
at.setIsAtAll("true");
request.setAt(at);
// 若上一步isAtAll没有设置true,则根据此处设置的手机号来@指定人
List<String> mobiles = new ArrayList<>();
mobiles.add("166********");
at.setAtMobiles(mobiles);
// 以下是设置各种消息格式的方法
sentText(request);
// sendLink(request);
// sendMarkdown(request);
// sendActionCard(request);
// sendFeedCard(request);
OapiRobotSendResponse response = client.execute(request);
System.out.println(response.getErrmsg());
}
text文本消息
public static void sentText(OapiRobotSendRequest request) {
Text text = new Text();
text.setContent("sdk demo");
request.setMsgtype("text");
request.setText(text);
}
link链接消息
public static void sendLink(OapiRobotSendRequest request) {
Link link = new Link();
link.setTitle("好消息!好消息!");
link.setText("本群与百度成功达成合作关系,今后大家有什么不懂的可以直接百度搜索,不用再群里提问浪费时间啦!");
link.setMessageUrl("https://www.baidu.com");
link.setPicUrl("http://www.baidu.com/img/bd_logo1.png");
request.setMsgtype("link");
request.setLink(link);
}
markdown消息
public static void sendMarkdown(OapiRobotSendRequest request) {
Markdown markdown = new Markdown();
markdown.setTitle("好消息!好消息!");
markdown.setText(
"#### 杭州天气 @156xxxx8827\n> 9度,西北风1级,空气良89,相对温度73%\n\n"
+ "> \n"
+ "> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n");
request.setMsgtype("markdown");
request.setMarkdown(markdown);
}
ActionCard消息
public static void sendActionCard(OapiRobotSendRequest request) {
Actioncard actioncard = new Actioncard();
actioncard.setTitle("乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身");
actioncard.setText(
" \n"
+ " ### 乔布斯 20 年前想打造的苹果咖啡厅 Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划");
actioncard.setHideAvatar("0");
actioncard.setBtnOrientation("1");
// actioncard.setSingleTitle("阅读全文");
// actioncard.setSingleURL("https://www.baidu.com/");
List<Btns> btns = new ArrayList<>();
Btns btn0 = new Btns();
btn0.setTitle("内容不错");
btn0.setActionURL("https://www.qq.com/");
btns.add(btn0);
Btns btn1 = new Btns();
btn1.setTitle("不感兴趣");
btn1.setActionURL("https://www.baidu.com/");
btns.add(btn1);
actioncard.setBtns(btns);
request.setMsgtype("actionCard");
request.setActionCard(actioncard);
}
FeedCard消息
类似公众号头条、次条消息
public static void sendFeedCard(OapiRobotSendRequest request) {
Feedcard feedcard = new Feedcard();
List<Links> linksList = new ArrayList<>();
Links links0 = new Links();
links0.setTitle("时代的火车向前开1");
links0.setMessageURL(
"https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI");
links0.setPicURL("https://www.dingtalk.com/");
linksList.add(links0);
Links links1 = new Links();
links1.setTitle("时代的火车向前开2");
links1.setMessageURL(
"https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI");
links1.setPicURL("https://www.dingtalk.com/");
linksList.add(links1);
feedcard.setLinks(linksList);
request.setMsgtype("feedCard");
request.setFeedCard(feedcard);
}
参考资源
通知神器——java调用钉钉群自定义机器人的更多相关文章
- 使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_132 最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用 ...
- Java调用Redis集群
前文 需要使用以下jar包 Maven项目引用以下配置: <dependency> <groupId>org.apache.commons</groupId> &l ...
- zabbix的搭建及操作(4)实现邮件,钉钉,微信报警
实现邮件报警 网页版邮箱中开启 POP3/SMTP/IMAP 生成授权码并记录 Server端安装配置邮件服务器 1.Yum安装邮件服务器 yum -y install mailx dos2unix ...
- Spring Cloud Admin健康检查 邮件、钉钉群通知
源码地址:https://github.com/muxiaonong/Spring-Cloud/tree/master/cloudadmin Admin 简介 官方文档:What is Spring ...
- jenkis +sonarqube 对后端代码静态扫描,钉钉群通知执行结果(记录)
代码提交,触发后端sonar测试,测试完成,jenkins触发依赖任务,执行python脚本,达到预期,调用上线任务模块,进行上线,达不到预期,钉钉群通知. 牵涉到配置: 1.配置sonar测试任务 ...
- zabbix3.4调用钉钉报警通知(超详细)
一.备注: zabbix调用钉钉接口报警通知有两种情况: 1.通知到个人钉 2.通知到钉钉群 本文主要介绍zabbix调用钉钉接口通知到钉钉个人的方式 二.zabbix3.4调用钉钉接口报警通知到个 ...
- 用Python实现阿里钉钉机器人读取数据库内容自动发群通知
最近想把一些预警数据信息按照一定的要求自动发送到移动端APP,最终把目标放在了腾讯的微信和阿里的钉钉软件上,由于刚开始学习python,于是编程工具想用python来实现.微信使用群体最广,通过一天的 ...
- [钉钉通知系列]SVN提交后自动推送消息到钉钉群
钉钉设置机器人配置 1.进入配置机器人入口 2.添加机器人 3.测试WebHook请求 本人使用Postman进行测试 4.配置SVN 4.1 配置 Pre-commit hook 设置提交内容必须包 ...
- JIRA对接钉钉群机器人-实现任务的指派通知
一.前提 Jira Software.钉钉群.RESTful服务.LDAP服务 二.流程图 三.对接步骤 1.创建项目群,把相关人员拉入群 2.钉钉群的智能群助手里添加自定义机器人 3.设置机器人,安 ...
随机推荐
- 百度AI之百度图像识别java版本使用
百度AI之百度图像识别java版本使用\ 官网 http://ai.baidu.com/ 创建应用 查看 appid,appkey,sk 下载sdk https://ai.baidu.com/sdk# ...
- 小白开学Asp.Net Core 《九》
小白开学Asp.Net Core <九> — — 前端篇(不务正业) 在<小白开学Asp.Net Core 三>中使用了X-admin 2.x 和 Layui将管理后端的界面重 ...
- 基于Bitnami gitlab OVA包的gitlab 环境搭建
前言 最近在折腾gitlab,本篇记录搭建的过程方便以后查找 环境 Windows server + VMware 安装 为方便本次我们直接采用Bitnami的VOA安装包(VOA格式可同时兼容Vir ...
- NPOI 日期类型的判断
NPOI目前我用到有两套类,一套是为了读写XLS:一套是读写XLSX 在读取文件时大都会判断单元格类型,方式大同小异,只有日期类型不同. 默认日期类型的单元格在NPOI都认为是数值类型(CellTyp ...
- CF175C Geometry Horse(贪心)
CF175C 贪心,注意有不少细节,很容易死循环TLE 贪心是显而易见的,每次枚举价值最小的物品,进行销毁操作 朴素的枚举每一件物品复杂度为\(O(\sum k_i)\),明显超时 我们注意到朴素的+ ...
- linux初学者-普通磁盘分区篇
linux初学者-普通磁盘分区篇 磁盘是计算机的重要组成部分,是记录数据的场所.在使用磁盘时,经常需要对其进行分区来实现不同的用途.下文将介绍在linux系统中普通磁盘分区的方法. "fdi ...
- TCP三次握手抓包理解
TCP建立连接需要三次握手,分手需要四次握手,平时在网上看到很多次,但是还没有很理解.为什么分手要多一次?可能是刚开始追求女生的时候比较容易,到分手的时候就比较麻烦了吧... 了解某个东西要从它的基础 ...
- 《SQL错题》
(选择一项) A: B: C: D: 正确答案是 D (选择一项) A: B: C: D: 正确答案是 A (选择一项) 8 A: B: C: ...
- ListActivity
ListActivity的使用 ListActivity类中集成了一个ListView控件. 通过继承ListActivity类可方便地使用ListView控件 1 public class 类名ex ...
- T-SQL 恢复数据库
USE master GO ALTER DATABASE DEMO SET SINGLE_USER GO ALTER DATABASE DEMO SET EMERGENCY GO DBCC CHECK ...