当前位置: 首页 > 后端技术 > Java

JAVA使用钉钉机器人推送信息

时间:2023-04-01 18:09:16 Java

在钉钉群中添加机器人,打开群设置-》智能群助手-》添加机器人选择最后一个自定义机器人,并设置名称。这里的安全模式使用自定义关键字作为例如,输入一个关键字,后面会用到。完成后会生成一个webhook来给这个机器人推送消息。第二种消息推送钉钉开放平台开放文档在上面文档中有如下描述,也就是说可以通过向第一步获取的webhook地址发送POST请求来实现。发送消息,消息支持不同类型。下面以最简单的测试为例。如果有其他需求,请参考官方文档。至此,思路就很清晰了,我们只需要通过JAVA发送一个httpPOST请求就可以实现消息推送了。官方文档给出了一个测试示例,我们可以以此为模板构建http请求curl'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx'\-H'Content-Type:application/json'\-d'{"msgtype":"text","text":{"content":"我就是我,不一样的烟花"}}'JAVA发起http请求JAVA发起的方式有很多种http请求。为了一一介绍,本文仅以Apache的HttpClient为例。第一步引入Apachehttpclient包org.apache.httpcomponentshttpclient4.5.13还需要介绍fastjson包是用来在构建时使用com.alibabafastjson2.0.14编写推送代码httprequests消息中必须包含创建时添加的关键字,否则无法完成推送publicstaticvoiddingRequest(Stringmessage){CloseableHttpClienthttpClient=HttpClientBuilder.create().build();字符串url=null;尝试{url=你webhook;}catch(Exceptione){e.printStackTrace();}HttpPosthttpPost=newHttpPost(url);//设置HTTP请求头,发送json字符串,编码为UTF-8httpPost.setHeader("Content-Type","application/json;charset=utf8");//生成json对象传入字符,创建请求的json字符串JSONObjectresult=newJSONObject();JSONObject文本=新的JSONObject();text.put("内容",消息);result.put("消息类型","文本");result.put("文本",文本);字符串jsonString=JSON.toJSONString(结果);StringEntityentity=newStringEntity(jsonString,"UTF-8");//设置http请求的内容httpPost.setEntity(entity);//响应模型CloseableHttpResponseresponse=null;try{//执行(发送)客户端的Post请求response=httpClient.execute(httpPost);//从响应模型中获取响应实体HttpEntityresponseEntity=response.getEntity();if(responseEntity!=null){System.out.println("响应内容的长度为:"+responseEntity.getContentLength());System.out.println("响应内容为:"+EntityUtils.toString(responseEntity));}}约tch(Exceptione){e.printStackTrace();}finally{try{//释放资源if(httpClient!=null){httpClient.close();}if(response!=null){response.close();}}catch(Exceptione){e.printStackTrace();注意:上面代码中引入的JSON和JSONObject对象必须是importcom.alibaba.fastjson2.JSON;importcom.alibaba.fastjson2.JSONObjectinfastjson;此时就可以使用机器人推送消息了