Java 推送消息到钉钉群

项目需要,有些监控信息,需要推送到钉钉群,Java实现,参考官方文档,整个工具类。

package com.my.tool.utils;

import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiRobotSendRequest;
import com.dingtalk.api.response.OapiRobotSendResponse;

import java.util.Arrays;

/**
 * @Author: 技术大咖秀
 * @Date: 2020/5/12 9:50
 */
public class DingTalkUtil {

    protected static final String WEB_HOOK_ACCESS_BIG_DATA = "https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXXXXXXXXXXXXXX";

    public static void sendText(){
        try {
            DingTalkClient client = new DefaultDingTalkClient(WEB_HOOK_ACCESS_BIG_DATA);
            OapiRobotSendRequest request = new OapiRobotSendRequest();
            request.setMsgtype("text");
            OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
            text.setContent("【监控预警】采集报错!");
            request.setText(text);
            OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
            at.setAtMobiles(Arrays.asList("18xxxxxxx3"));
            // isAtAll类型如果不为Boolean,请升级至最新SDK
            at.setIsAtAll(false);
            request.setAt(at);

            OapiRobotSendResponse response = client.execute(request);
        } catch (Exception e){
            e.printStackTrace();
        }

    }

    public static void sendLink(){
        try {
            DingTalkClient client = new DefaultDingTalkClient(WEB_HOOK_ACCESS_BIG_DATA);
            OapiRobotSendRequest request = new OapiRobotSendRequest();
            request.setMsgtype("link");
            OapiRobotSendRequest.Link link = new OapiRobotSendRequest.Link();
            link.setMessageUrl("https://www.dingtalk.com/");
            link.setPicUrl("");
            link.setTitle("时代的火车向前开");
            link.setText("监控,这个即将发布的新版本,创始人xx称它为红树林。而在此之前,每当面临重大升级,产品经理们都会取一个应景的代号,这一次,为什么是红树林");
            request.setLink(link);

            OapiRobotSendResponse response = client.execute(request);
        } catch (Exception e){
            e.printStackTrace();
        }
    }

    public static void sendMarkDown(){
        try {
            DingTalkClient client = new DefaultDingTalkClient(WEB_HOOK_ACCESS_BIG_DATA);
            OapiRobotSendRequest request = new OapiRobotSendRequest();
            request.setMsgtype("markdown");
            OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
            markdown.setTitle("杭州天气监控");
            markdown.setText("#### 杭州天气 @156xxxx8827\n" +
                    "> 9度,西北风1级,空气良89,相对温度73%\n\n" +
                    "> ![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png)\n"  +
                    "> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n");
            request.setMarkdown(markdown);

            OapiRobotSendResponse response = client.execute(request);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        sendMarkDown();
    }


}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现钉钉消息推送,可以使用钉钉提供的开放平台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格式的消息,具体使用方法可以参考钉钉开放平台文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值