这次疫情席卷全球,现在大家手机里都会有一个钉钉了吧,说起钉钉,它的DING不可谓不烦,今天uptown写一个有意思的小脚本。让你为刀俎,找个鱼肉烦一下

开发工具:IDEA、Maven、Jdk1.8

IDEA: 全称 IntelliJ IDEA,JetBrains旗下的java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具。不过最近JetBrains行为日渐恶劣,渣男行为,一开始很容易破解,用户量多了以后,追到手了说不爱了?
破解全部失效,不交钱就分手?行为越来越像公司简称。。。


Maven:常用的jar包管理工具,之前比较老的项目需要将jar包下载到本地,使用maven则可以通过pom文件添加依赖从配置好的远程仓库下载jar包
maven使用教程:
https://blog.csdn.net/dreamboy_w/article/details/95600545
JDK1.8: 14都出来了还不用8吗,lambda表达式它不香吗
机器人配置:
首先需要新建一个钉钉群,点击群设置里智能群助手添加自定义机器人。

安全设置选择自定义关键词,每次发送的消息要带着关键词

点击完成后得到Webhook地址,这就是向机器人发送消息的地址了


代码环境搭建:
利用IDEA创建一个空Maven项目,在pom文件中添加依赖,hutool整合了很多好用的工具。方便可靠
<dependencies><!--糊涂大法好 模拟请求,转json--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>4.0.12</version></dependency></dependencies>
编写测试类:
import cn.hutool.http.HttpRequest;import cn.hutool.http.HttpUtil;import cn.hutool.json.JSON;import cn.hutool.json.JSONUtil;import com.google.common.collect.Lists;import com.google.common.collect.Maps;import lombok.Value;import java.util.List;import java.util.Map;/*** @author: UPTOWN* @date: 2020/6/8 23:12*/public class DingTalkTest {//请求相应时间private static final int timeout = 10000;//webhook地址private static final String dingUrl = "https://oapi.dingtalk.com/robot/send?access_token=fb78463017a71c9fd6214301e6bc209e05c081fa2bd8237059ed0534b792ceee";public static void main(String[] args){try {//钉钉机器人地址(配置机器人的webhook)//是否通知所有人boolean allPerson = true;boolean isAtAll = true;//通知具体人的手机号码列表 isAtAll为false才会有@具体人的效果List<String> mobileList = Lists.newArrayList();mobileList.add("要通知人的手机号");//钉钉机器人消息内容String allContent = "大家好,今天你打卡了吗?";//组装请求内容String allReqStr = buildReqStr(allContent, allPerson, mobileList);//推送消息(http请求)String allResbody = HttpRequest.post(dingUrl).body(allReqStr).timeout(timeout).execute().body();//打印返回结果System.out.println("result == " + allResbody);}catch (Exception e){e.printStackTrace();System.out.println(e.getMessage());}}/*** 组装请求报文* 请求数据为JSON格式数据* @param content* @return*/private static String buildReqStr(String content, boolean isAtAll, List<String> mobileList) {//消息内容Map<String, String> contentMap = Maps.newHashMap();contentMap.put("content", content);//通知人Map<String, Object> atMap = Maps.newHashMap();//1.是否通知所有人atMap.put("isAtAll", isAtAll);//2.通知具体人的手机号码列表atMap.put("atMobiles", mobileList);Map<String, Object> reqMap = Maps.newHashMap();reqMap.put("msgtype", "text");reqMap.put("text", contentMap);reqMap.put("at", atMap);return JSONUtil.toJsonStr(reqMap);}}

如果个人感兴趣的化可以加上定时任务,有服务器的话可以将代码打成jar包,放到服务器上后台运行,这样在你指定的时间就可以收到消息啦。
乘风破浪uptown
文章转载自在下uptown,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




