如何实现基于java使用钉钉机器人向钉钉群推送消息功能
创始人
2024-12-24 06:03:26
0次

第一步、登录钉钉电脑版,获得钉钉机器人的webhook;

第二步,用java发送post请求给钉钉完成消息推送

package com.thinkgem.wlw.modules.lhjh.DingTalk;import com.alibaba.fastjson.JSON;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.*;import java.net.URL;import java.net.URLConnection;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;/** * @Author: zhouhe * @Date: 2019/6/20 14:49 */public class SendHttps {  private static Logger logger = LoggerFactory.getLogger(SendHttps.class);  /**   * 发送POST请求,参数是Map, contentType=x-www-form-urlencoded   *   * @param url   * @param mapParam   * @return   */  public static String sendPostByMap(String url, Map mapParam) {    Map headParam = new HashMap();    headParam.put("Content-type", "application/json;charset=UTF-8");    return sendPost(url, mapParam, headParam);  }  /**   * 向指定 URL 发送POST方法的请求   *   * @param url  发送请求的 URL   * @param param 请求参数,   * @return 所代表远程资源的响应结果   */  public static String sendPost(String url, Map param, Map headParam) {    PrintWriter out = null;    BufferedReader in = null;    String result = "";    try {      URL realUrl = new URL(url);      // 打开和URL之间的连接      URLConnection conn = realUrl.openConnection();      // 设置通用的请求属性 请求头      conn.setRequestProperty("accept", "*/*");      conn.setRequestProperty("connection", "Keep-Alive");      conn.setRequestProperty("user-agent",          "Fiddler");      if (headParam != null) {        for (Entry entry : headParam.entrySet()) {          conn.setRequestProperty(entry.getKey(), entry.getValue());        }      }      // 发送POST请求必须设置如下两行      conn.setDoOutput(true);      conn.setDoInput(true);      // 获取URLConnection对象对应的输出流      out = new PrintWriter(conn.getOutputStream());      // 发送请求参数      out.print(JSON.toJSONString(param));      // flush输出流的缓冲      out.flush();      // 定义BufferedReader输入流来读取URL的响应      in = new BufferedReader(          new InputStreamReader(conn.getInputStream()));      String line;      while ((line = in.readLine()) != null) {        result += line;      }    } catch (Exception e) {      logger.info("发送 POST 请求出现异常!" + e);      e.printStackTrace();    }    //使用finally块来关闭输出流、输入流    finally {      try {        if (out != null) {          out.close();        }        if (in != null) {          in.close();        }      } catch (IOException ex) {        ex.printStackTrace();      }    }    return result;  }}

第三步,编写测试类

package com.thinkgem.wlw.modules.lhjh.DingTalk;import java.util.HashMap;import java.util.Map;/** * @Author: zhouhe * @Date: 2019/6/20 14:52 */public class SendMessage {  public static void main(String[] args){    // 钉钉的webhook    String dingDingToken="https://oapi.dingtalk.com/robot/send?access_token=0f0daca33m98gn78f00189fe1e1e908b81fa26d0d8ddd48fa78a844cd8636187";    // 请求的JSON数据,这里我用map在工具类里转成json格式    Map json=new HashMap();    Map text=new HashMap();    json.put("msgtype","text");    text.put("content","临涣焦化:VOCs排放浓度大于上限:61.89");    json.put("text",text);    // 发送post请求    String response = SendHttps.sendPostByMap(dingDingToken, json);    System.out.println("相应结果:"+response);  }}

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...