钉钉通知

简介: 本文介绍如何通过Java代码调用钉钉机器人API实现系统告警消息推送。内容涵盖机器人创建、Webhook配置、Postman测试及Java代码实现,并提供限流策略与关键词安全设置等最佳实践,助力实时监控与异常通知。

钉钉通知

本文讲实现Java代码调用钉钉机器人API,发送指定告警消息的效果,以满足用户对于系统的实时监控。
API:https://open.dingtalk.com/document/orgapp/custom-robots-send-group-messages

每个机器人每分钟最多发送20条消息到群里,如果超过20条,会限流10分钟。
重要
如果有大量发消息的场景(譬如系统监控报警)可以将这些信息进行整合,通过markdown消息以摘要的形式发送到群

1.创建钉钉机器人
创建告警群聊
就拉一个普通群聊就可以

护士站对接群

普通群

群成员4人

设置群身份


创建机器人
群设置选择机器人

群设置

消息免打扰

群管理

泊舟

群权限相关设置

群主

标签

普通群

群类型

普通群无组织归属,推荐升级为内部群等其他类型,功能更丰富,

安全更有保障.

机器人

AI实时翻译

清空聊天记录

退出群聊

解散该群



机器人管理

小钉

钉钉官方机器人,提供丰富的技能

已开启的技能

投票提醒

日程提醒

添加机器人

多款丰富的精选机器人


选择自定义机器人

极狐

GITLAB

TRAVIS

JIRA

极狐GITLAB

GITHUB

基于GIT的代码托管服

基于ROR的开源代码

出色的项目与事务跟

出色的项目与事务跟

托管软件

踪工具

踪工具

自定义

TRELLO

通过WEBHOOK接入自

实时的卡片墙,管理

定义服务

任何事情

企业机器人

阿里云开

-阿里云

开发者社区

发者社区

训练营

训练营BOT

平三勇

阿里云开发者


定义机器人相关信息,重点关注关键词

取个名

护士站告警小瓦力

机器人名字:

护士站对接群

添加到群组:

异常消息关键词,完全是用户自定义,只要你在发送消息中有这些关键词,就可以发送到群里

安全设置

自定义关键词

说明文档

告警

这里我模拟了四个

失败

异常

限流


保存Webhook

1.添加机器人Y

2.设置WEBHOOK,点击设置说明查看如何配置以使机器人生效

HTTPS://OAPI.DINGTALK.COM/ROBOT/SEND?ACCESS TOK

WEBHOOK:

复制

*请保管好此WEBHOOK地址,不要公布在外部网站上,泄露有安全风险

使用WEBHOOK 地址,向钉群推送消息

非常重要,是发送必须的参数

完成

设置说明


2.PostMan测试发送API
基于官方提供的API,我们可以做下述测试
官方请求示例
请求示例(HTTP)
下面的token需要替换成webhook中的地址
请求正文
下面消息类型支持多种,通过msgtype声明你要哪种
at,标识群里@哪些人,如果isAtAll就标识@群里所有人,@atMobiles标识指定手机号,其余参数同理
测试@所有人

SEND

POST

AUTHORIZATION

PRE-REQUEST SCRIPT

SETTINGS

COOKIES

BODY

HEADERS(8)

TESTS

PARAMS

X-WWW-FORM-URLENCODED

GRAPHQL

FORM-DATA

JSON

BEAUTIFY

NONE

BINARY

RAW

3

23

"AT":

"ISATALL":"TRUE",

4

"ATUSERIDS":["17600477102","USER002"],

"ATMOBILES":["17600477102","18XXX"]

5

6

7

"MSGTYPE":"TEXT",

8

//文本消息

9

"TEXT":

10

"CONTENT":"测试预警消息告警通知"

11

12


护士站对接群

HI JX  WU YAYEIT ZIT

护士站告警小瓦力

机器人

测试预警消息告警通知@所有人


测试@指定人

HTIPS//OAPLLINGTALKCON/OBOTJSENDRACCESS.FOKENE8765208F3EOD6AACC137D1525E4D962161C301FICBACA17BC12ABE7

SEND

POST

PRE-REQUEST SCRIPT

SETTINGS

AUTHORIZATION

BODY

HEADERS(8)

COOKIES

TESTS

PARAMS

FORM-DATA

JSON

X-WWW-FORM-URLENCODED

BEAUTIFY

GRAPHQL

BINARY

RAW

NONE

'AT":'

3456780

"FALSE".

"ISATA11

IDS":["17600477102","USER002"],

"ATUSERIDS

["17600477102

"18XXX"]

"ATMOBILES

"MSGTYPE":"TEXT",

//文本消息

890NN

TEXT":

"CONTENT":"测试预警消息告警通知"


护士站告警小瓦力

机器人

09:19

测试预警消息告警通知

@泊舟

收到

回复


测试卡片消息

燕HTT

SAVE

HTPS/0APLDINGTAKCON/_ONOVSEND了B2T1C8AC4JOKEN-8520AF360D53E0D5AACC1370152564DSB211C8AC4FO5A170C128BE77

SEND

POST

COOKIES

PARAMS

HEADERS(8

PRE-REQUEST SCRIPT

TESTS

SETTINGS

BODY

AUTHORIZATION

JSON

BEAUTIFY

FORM-DATA

GRAPHQL

BINARY

X-WWW-FORM-URLENCODED

NONE

RAW

"ISATALL":"FALSE",

"ATUSERIDS":["17600477102","USER002"],

"ATMOBILES":["17600477102","18XX"]

5

9

5,

,"MSGTYPE":"ACTIONCARD",

7

8

"ACTIONCARD":

9

."TITLE":"我-20-年前想打造一向苹果咖啡厅,而它正是-APPLE-的前身",

10

ANIN APPLE STORE.的设计在从政采满调的科技感走向生活化,商共生消化的走向其交可以而调制,26,年商平果一个建立期呼行的吉弯计划"

"BTNORIENTATION":"O","O",

11

"BTNS":

12

13

"TITLE":"内容不错",

14

"ACTIONURL":"HTTPS://WWW.DINGTALK.COM/"

15

16

17

"TITLE":"不感兴趣",

18

,"ACTIONURL":"HTTPS://WWW.DINGTALK.COM/"

19

20


护士站告警小瓦力

09:26

机器人

咨询定制

定制专属钉钉

专有云服务

系统集成服务

云化咨询

星身定制工作合皮肤与欢迎雨,自宠

为企业设立南全属于自己的独立数据

张托打专家技术国队,为企业统一

出租织有爱规划爱上战略,钉钉专家

捏以面向业务晚状和发展目标的战略

义晓天背景,提丹员工白尾感

移动办公应用,个入口打送企业所

服务器私机房,让企业数据与公有效

调料,分析,规划,帮助差悦实现云

奖完全限离

有应用

化升最

告警乔布斯20年前想打造的苹果咖啡厅

APPLESTORE的设计正从原来满满的科技感走向生活

化,而其生活化的走向其实可以追溯到20年前苹果一

个建立咖啡馆的告警计划

内容不错

不感兴趣


3.编写发送代码
有了上述PostMan的测试,下面的java代码编写对于我们来说就很简单了
引入pom依赖
公司内网则直接下载好:https://open-dev.dingtalk.com/sdk/download/java
编写java代码

Java

运行代码复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

import com.dingtalk.api.DefaultDingTalkClient;

import com.dingtalk.api.DingTalkClient;

import com.dingtalk.api.request.OapiRobotSendRequest;

import com.dingtalk.api.response.OapiRobotSendResponse;

import com.taobao.api.ApiException;


import java.util.Arrays;


public class DingTalk {



public static void main(String[] args) {

try {

// 1-初始化API调用Client

DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=87b520af3e0b6aacc137d1525e4d9b21f61c901f1c8ac4f05a17bc12a8e7f737");


// 2-初始化请求参数

OapiRobotSendRequest req = new OapiRobotSendRequest();

// 2-1 设置消息类型

req.setMsgtype("text");

// 2-2 设置消息@人

OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();

at.setAtMobiles(Arrays.asList("17600477102"));

req.setAt(at);

// 2-3 设置消息内容(必须匹配关键词),工作中这里就对应error日志

OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();

text.setContent("[告警]测试java代码消息");

req.setText(text);


// 3 消息发送

OapiRobotSendResponse rsp = client.execute(req, "");

System.out.println(rsp.getBody());

} catch (ApiException e) {

e.printStackTrace();

}

}

}

代码测试

2分钟前

护士站告警小瓦力

09:48

机器人

[告警]测试JAVA代码消息

@泊舟

收到

回复


4.工作中到底怎么用
上面我们完成了简单的告警通知,实际工作中也是这么来做,但是会做一点点优化
将上述代码封装成一个工具类,如:DingTalkMessageUtil
将token保存在nacos中,与代码解耦
在有异常日志、慢SQL等关键场景中调用此工具类,将消息发送到群,让开发人员及时感知并处理
5.失败原因分析
看看你发送消息中,是不是没有自己定义的关键词
看看你消息的接收方,是不是userId或手机号不对

4 人点赞

4

油炸

相关文章
|
2天前
|
uml C语言
系统时序图
时序图(Sequence Diagram)是UML中描述对象间消息传递时间顺序的交互图,横轴为对象,纵轴为时间。它用于展示系统动态协作过程,强调交互的时间先后关系,直观呈现并发行为。主要元素包括角色、对象、生命线、控制焦点和消息等,广泛应用于软件设计建模。
系统时序图
|
2天前
|
消息中间件 存储 数据挖掘
应用架构图
本文介绍应用架构图的设计原理,涵盖单体与分布式架构模式。重点解析展现层、业务层、数据层及基础通用层的分层设计,阐述系统间调用关系与外部依赖,明确应用边界,指导技术方案落地。
|
2天前
|
消息中间件 运维 物联网
语音通知
语音通知服务适用于科技公司服务器或物联网设备异常时的告警通知。通过语音电话形式,向处理人播报预设模板内容,支持变量替换实现个性化提醒。需开通语音服务并申请资质、话术、号码及模板,可通过API发起呼叫并查询记录,支持主动查询与消息回执两种结果获取方式,提升运维响应效率。
语音通知
|
1天前
|
项目管理 开发者
业务架构图
业务架构图是梳理业务层级与关系的工具,通过分层、分模块、分功能,抽象出业务核心结构,明确各部分职责与协作,服务于客户理解与系统开发,是连接业务与技术的重要桥梁。
Day07
简介:本文讲解CAP与BASE理论核心要点,阐述分布式系统中一致性、可用性与分区容错性的权衡,解析Seata AT模式的执行流程,并探讨MQ消息防丢失、重复消费及积压处理等关键问题。
Day07
|
1天前
|
运维 Devops 开发工具
生产环境缺陷管理
针对大型团队多分支开发中bug管理难题,本文介绍基于go-git实现的分布式工具git-poison,通过“投毒-解药-银针”机制,实现bug的自动化追溯、发布卡点与影响范围精准识别,有效避免人为疏漏导致的生产事故,提升缺陷管理效率与系统稳定性。
生产环境缺陷管理
|
1天前
|
负载均衡 Dubbo 应用服务中间件
Day01
本文介绍微服务架构的适用场景及技术选型,对比单体与微服务优劣,详解Nacos与Eureka注册中心的心跳机制、服务治理差异,并涵盖常见负载均衡算法及SpringCloud Alibaba常用组件实践。
 Day01
|
1天前
|
存储 安全 算法
第一章 Java基础
本章系统讲解Java基础核心知识,涵盖重载与重写、==与equals、String三兄弟区别、异常体系、集合类原理(如HashMap结构与扩容)、线程并发(ThreadLocal、锁机制)、JVM内存模型、Lambda表达式、反射泛型及Tomcat优化等内容,深入浅出,助力夯实Java基础。
第一章 Java基础
|
1天前
|
存储 缓存 Java
自定义注解
本文介绍Java自定义注解的实现原理与应用,结合Spring AOP 和过滤器实现日志、权限控制及登录验证,涵盖注解定义、@Target、@Retention等核心语法,并通过代码示例展示实际使用流程。
 自定义注解
|
1天前
|
JSON 安全 Java
2.OAuth2.0实战案例
本文详细演示了OAuth2.0四种授权模式的实战应用,涵盖资源与授权服务搭建、配置及测试流程。通过具体案例展示授权码、简化、密码和客户端模式的实现步骤,并结合Spring Security完成认证授权,最终成功获取token并访问受保护资源。