Java 往钉钉群里面进行推送消息

Java 往钉钉群里面进行推送消息



前言

例如:

一、在钉钉上面创建一个群

配置一个机器人
在这里插入图片描述
输入机器人名字,安全设置里输入自定义的关键字

注意注意:这个自定义关键字必须输入,而且等下在代码里发送消息时,消息的内容体里,必须包含这个关键字,否则钉钉会返回 消息发送失败
在这里插入图片描述
点 完成 即可。

二、代码如下

按照步骤 把代码拿过去 就可以使用了

/**
 * @作者 zw
 * @微信公号 搬砖暗夜码农
 * @开源项目 $ https://gitee.com/zhouwei5208888/spring-boot-distributed
 * @我的博客 $ http://itzhouwei.com
 * @创建时间 2024/10/11 11:19
 */
package cn.cws.fulimall.dingding.send;

import lombok.extern.slf4j.Slf4j;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @ClassName:SendDDMessage 钉钉推送操作类
 * @Author: zw,微信公共号:搬砖暗夜码农
 * @Date: 2024/10/11 11:19
 * @Description:
 * @Copyright:公众号:搬砖暗夜码农 | 博客:https://itzhouwei.com - 沉淀、学习、分享、成长,让自己和他人都能有所收获!
 */
@Slf4j
public class SendDDMessage {


    //这里就是刚才拿到的Webhook的值
    public static final String DING_DING_TOKEN ="";




    /*****
     * 发送钉钉消息
     * @param orderNumber   订单编号
     * @param phoneNumber  收货人手机好吗
     * @param products   商品名 多个 商品
     */
    public static void sendDDMessage(String orderNumber, String phoneNumber, List<String> products) {
        // 钉钉的webhook
        // 请求的JSON数据,这里用map在工具类里转成json格式
        Map<String, Object> json = new HashMap<>();
        Map<String, Object> text = new HashMap<>();

        json.put("msgtype", "text");

        StringBuilder contentBuilder = new StringBuilder();
        contentBuilder.append("订单编号:").append(orderNumber).append(" 需要进行退款处理操作\n")
                .append("收货电话: ").append(phoneNumber).append("\n商品名:\n");

        for (int i = 0; i < products.size(); i++) {
            contentBuilder.append(i + 1).append("、").append(products.get(i)).append("\n");
        }

        contentBuilder.append("请尽快退单处理,处理完成后回复该信息,谢谢!");

        text.put("content", contentBuilder.toString());
        json.put("text", text);


        String atall="{\n" +
                "        \"isAtAll\": true\n" +
                "    }\n";
        json.put("at", atall);

        // 发送post请求
        String response = SendHttps.sendPostByMap(DING_DING_TOKEN, json);
        log.error("项目告警发送钉钉,响应结果:{}", response);
    }
}

– 发送请求工具类

/**
 * @作者 zw
 * @微信公号 搬砖暗夜码农
 * @开源项目 $ https://gitee.com/zhouwei5208888/spring-boot-distributed
 * @我的博客 $ http://itzhouwei.com
 * @创建时间 2024/10/11 11:18
 */
package cn.cws.fulimall.dingding.send;

import com.alibaba.fastjson.JSON;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;

/**
 * @ClassName:SendHttps 发送 http 请求。
 * @Author: zw,微信公共号:搬砖暗夜码农
 * @Date: 2024/10/11 11:18
 * @Description:
 * @Copyright:公众号:搬砖暗夜码农 | 博客:https://itzhouwei.com - 沉淀、学习、分享、成长,让自己和他人都能有所收获!
 */
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<String, Object> mapParam) {
        Map<String, String> 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<String, Object> param, Map<String, String> 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 (Map.Entry<String, String> 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;
    }
}

– 测试

public class SendMessageTest {
 
    public static void main(String[] args) {

        List<String> products=new ArrayList<>();
        products.add("尚朋堂 多功能涮烤一体锅SPT-SKG025 246.04");
        products.add("醉卧蟹庐 阳澄湖大闸蟹券公蟹3.0两母蟹2.0两 4对");
        SendDDMessage.sendDDMessage("CH44545I20240723185301285keot7","手机号码",products);
 
    }
 
}

测试结果在这里插入图片描述

总结

提示:这里对文章进行总结:

以上就是今天要讲的内容,本文仅仅只是Java往钉钉群里面推送消息操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟子涵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值