钉钉机器人通知(SpringBoot)

编程入门 行业动态 更新时间:2024-10-05 01:16:29

钉钉<a href=https://www.elefans.com/category/jswz/34/1771107.html style=机器人通知(SpringBoot)"/>

钉钉机器人通知(SpringBoot)

我们在工作中钉钉办公需要一些提醒或者通知,需要用到钉钉机器人来代替我们完成一些重复性的工作,看到钉钉有个机器人的自定义文档。

=ding_open_doc.document.0.0.6284657351Hh8K#topic-2026027

如何实现自定义机器人?

1.首先在钉钉群中添加机器人获取webhook地址



注意这里 :
如果选择自定义关键字 在内容的开头一定要和自定义关键字一样
如:关键字设置为:通知
那么内容的开头一定是:通知XXXXX

2.代码实现

1.搭建springboot项目
使用RestTemplate发送HTTP请求

package com.bky.dingding;import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.ssl.SSLContextBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;import javax.ssl.SSLContext;@Configuration
public class RestTemplateConfig {/*** 服务器返回数据(response)的时间*/private static final Integer READ_TIME_OUT = 6000;/*** 连接上服务器(握手成功)的时间*/private static final Integer CONNECT_TIME_OUT = 6000;@Beanpublic RestTemplate restTemplate(){ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient());return new RestTemplate(requestFactory);}@Beanpublic HttpClient httpClient(){//默认证书有效SSLConnectionSocketFactory sslConnectionSocketFactory = SSLConnectionSocketFactory.getSocketFactory();SSLContext sslContext = null;try {//信任所有的SSL证书sslContext = SSLContextBuilder.create().setProtocol(SSLConnectionSocketFactory.SSL).loadTrustMaterial((x, y) -> true).build();} catch (Exception e) {e.printStackTrace();}if (sslContext != null) {sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext);}// 支持HTTP、HTTPSRegistry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create().register("http", PlainConnectionSocketFactory.getSocketFactory()).register("https", sslConnectionSocketFactory).build();PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry);connectionManager.setMaxTotal(200);connectionManager.setDefaultMaxPerRoute(100);connectionManager.setValidateAfterInactivity(2000);RequestConfig requestConfig = RequestConfig.custom()// 服务器返回数据(response)的时间,超时抛出read timeout.setSocketTimeout(READ_TIME_OUT)// 连接上服务器(握手成功)的时间,超时抛出connect timeout.setConnectTimeout(CONNECT_TIME_OUT)// 从连接池中获取连接的超时时间,超时抛出ConnectionPoolTimeoutException.setConnectionRequestTimeout(1000).build();return HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).setConnectionManager(connectionManager).build();}
}```java
@Service
public class DingRobart {@AutowiredRestTemplate restTemplate;@Value("${dingding.robart.webhook}")private String URL;private ReqBody reqBody = new ReqBody(new At(null, true), new Text("新的一天,大家发一下日报,元气满满"), "text");//private ReqBody reqBody1 = new ReqBody(new At(null, true), new Text("工作一周辛苦了,大家发一下周报"), "text");//private ReqBody reqBody2 = new ReqBody(new At(null, true), new Text("大家好!"), "text");//private ReqBody reqBody3 = new ReqBody(new At(null, true), new Text("大家早上好,开始努力搬砖吧!"), "text");//@Scheduled(cron = "0 00 9 ? * MON-FRI")public JSONObject ribaoEveryDay() {HttpHeaders headers = new HttpHeaders();headers.add("Content-Type", "application/json");System.out.println("开始日报");String respBody = restTemplate.postForObject(URL, reqBody, String.class);return JSONObject.parseObject(respBody);}
}

application.properties文件的配置

# 应用名称
spring.application.name=dingding
# 把钉钉群里创建机器人的那个URL贴到这里替换掉
dingding.robart.webhook==6970bbc0e0c73bc9bc6f4c7770c9d0280481b16a0adc628248444d459fe38bac

写完之后我们启动服务或者打成jar包就好了

3.效果

具体代码可以参考

更多推荐

钉钉机器人通知(SpringBoot)

本文发布于:2024-02-28 07:55:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1769030.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:机器人   通知   SpringBoot

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!