Java 实现钉钉群消息推送

首先新建钉钉群,并新增机器人
在这里插入图片描述
在这里插入图片描述
官方建议三种安全设置方式必须选择一种:
在这里插入图片描述
我们这里选择加签,需要设置机器人:
在这里插入图片描述

相关代码如下:

	//密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串。
	String secret = "xxx";
	//Webhook地址中的access_token
    String token = "xxx";

	@Override
    public String context() {
        String value = "99";
        String context = String.format("xxxx日报\r\n" +
                        "\r\n" +
                        "当日营收%s万元。。此处内容省略",
                value
        );
        return context;
    }

    @Override
    public String messageGroup() throws Exception {
        //获取发送内容
        String context = this.context();
        //签名认证
        Long timestamp = System.currentTimeMillis();
        String stringToSign = timestamp + "\n" + secret;
        Mac mac = Mac.getInstance("HmacSHA256");
        mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));
        byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
        String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=" + token + "&timestamp=" + timestamp + "&sign=" + sign);
        OapiRobotSendRequest request = new OapiRobotSendRequest();
		// 独立跳转ActionCard类型
        request.setMsgtype("actionCard");
        OapiRobotSendRequest.Actioncard actioncard = new OapiRobotSendRequest.Actioncard();
        actioncard.setTitle("xx项目");
        //图文
        actioncard.setText("![screenshot](https://xxxx.com/temp/banner%20%282%29.png)" + context);
        actioncard.setSingleTitle("查看详情");
        //设置跳转地址
        actioncard.setSingleURL("https://xxxx");
        request.setActionCard(actioncard);
        client.execute(request);
        return "";
    }
	

最终实现效果如下:
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现钉钉消息推送,可以使用钉钉提供的开放平台API,具体步骤如下: 1. 首先在钉钉开放平台注册应用,获得相应的AppKey和AppSecret。 2. 在应用中创建一个机器人,并获得机器人Webhook地址。 3. 使用Java的HttpURLConnection或者HttpClient等工具,向机器人Webhook地址发送POST请求,请求内容为JSON格式的消息。 4. 在请求头中添加Content-Type和Charset等必要的参数。 5. 如果需要对消息进行加密,可以使用钉钉提供的加密算法进行加密。 6. 钉钉会对收到的消息进行安全校验,如果校验失败则无法正常推送消息。 7. 如果推送成功,钉钉会返回JSON格式的响应,可以根据响应结果判断是否推送成功。 下面是一个示例代码: ``` import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class DingTalkUtil { private static final String WEBHOOK_TOKEN = "机器人Webhook地址"; private static final String CONTENT_TYPE = "application/json"; private static final String CHARSET = "UTF-8"; public static void sendTextMessage(String message) { try { URL url = new URL(WEBHOOK_TOKEN); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", CONTENT_TYPE); conn.setRequestProperty("Charset", CHARSET); OutputStream os = conn.getOutputStream(); os.write(message.getBytes(CHARSET)); os.flush(); os.close(); int responseCode = conn.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { // 处理推送成功的逻辑 } else { // 处理推送失败的逻辑 } conn.disconnect(); } catch (Exception e) { // 处理异常情况 } } } ``` 其中,sendTextMessage方法可以用来向机器人发送文本消息。需要注意的是,钉钉还支持发送Markdown格式和ActionCard格式的消息,具体使用方法可以参考钉钉开放平台文档。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值