实现钉钉自定义机器人推送markdown类型消息

这篇具有很好参考价值的文章主要介绍了实现钉钉自定义机器人推送markdown类型消息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以前有一段时间普通群聊不支持创建自定义机器人,最近好像又可以了,遂发一篇文章讲解一下流程

创建机器人

首先在需要添加机器人的群里添加机器人,选择自定义机器人,创建成功之后记录webhook地址,安全策略可自行选择,此处介绍的是加签策略下的实现文章来源地址https://www.toymoban.com/news/detail-832342.html

代码

import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.net.URLEncoder;

import org.apache.commons.codec.binary.Base64;

import java.util.*;

/**
 * 推送钉钉告警消息
 */
public class AutoSendDingtalkMessage {

    private static final Logger logger = LoggerFactory.getLogger(AutoSendDingtalkMessage.class);

    /**
     * 发送超时时间10s
     */
    private static final int TIME_OUT = 10000;

    private static String webhook = "填入自己机器人的地址";

    static {
        Long timestamp = System.currentTimeMillis();
        String secret = "填入相应内容";

        String stringToSign = timestamp + "\n" + secret;
        Mac mac = null;
        String sign = null;
        try {
            mac = Mac.getInstance("HmacSHA256");
            mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));
            byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
            sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
        } catch (Exception e) {
            logger.error("消息推送到钉钉的签名密钥处理失败,请检查告警有无正常发送", e);
        }
        webhook += "&timestamp=" + timestamp + "&sign=" + sign;
    }

    public static String sendMsg(String content, List<String> mobileList) {
        try {
            //是否通知所有人
            boolean isAtAll = false;
            //组装请求内容
            String dataString = buildReqStr(content, isAtAll, mobileList);
            //推送消息(http请求)
            String result = sendMsg(webhook, dataString);
            return result;
        } catch (Exception e) {
            logger.error("发送群通知异常 异常原因:" + e);
            return null;
        }
    }

    /**
     * 组装请求报文
     */
    private static String buildReqStr(String content, boolean isAtAll, List<String> mobileList) {
        // Markdown 格式的消息内容
        JSONObject markdownContent = new JSONObject();
        markdownContent.put("title", "毕设异常通知");

        // 在消息内容中添加换行符
        content = "## 警告:\n" +
                "### 毕设运行出现异常,内容如下:\n\n```\n" + content + "\n```";

        markdownContent.put("text", content);

        // 通知人
        JSONObject atObject = new JSONObject();
        atObject.put("isAtAll", isAtAll);
        if (mobileList != null && !mobileList.isEmpty()) {
            atObject.put("atMobiles", mobileList);
        }

        // 构建请求的 JSON
        JSONObject reqObject = new JSONObject();
        reqObject.put("msgtype", "markdown");
        reqObject.put("markdown", markdownContent);
        reqObject.put("at", atObject);

        return reqObject.toJSONString();
    }

    private static String sendMsg(String url, String dataString) {
        String body = null;
        try {
            body = HttpRequest.post(url).body(dataString).timeout(TIME_OUT).execute().body();
        } catch (Exception e) {
            logger.error("发送失败", e);
        }
        return body;
    }
}

到了这里,关于实现钉钉自定义机器人推送markdown类型消息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 钉钉机器人发送Markdown格式的内容

    钉钉机器人官方文档 请求参数格式 要@人的时候,text中要有@电话号码以及atMobiles是要有电话号码才能@成功 指定文本颜色时用英文颜色单词,仅PC支持,如果是16进制色号并用双引号,则PC和手机端均支持

    2024年02月14日
    浏览(39)
  • 钉钉机器人推送

     自定义类型机器人文档 自定义机器人发送群消息 - 钉钉开放平台 验证签名文档 自定义机器人的创建和安装 - 钉钉开放平台 php代码实现方式

    2024年01月24日
    浏览(47)
  • 钉钉机器人推送消息

    https://open.dingtalk.com/document/ https://open.dingtalk.com/document/resourcedownload/download-server-sdk 就拿java的服务端SDK来说分为两个大的版本:老版本SDK和新版本SDK. https://s01.oss.sonatype.org/?spm=ding_open_doc.document.0.0.4564722fJDmwRj#nexus-search;quick~dingtalk 这种方式只需要在钉钉中拉一个群,人员超过三

    2024年02月09日
    浏览(45)
  • 利用钉钉机器人Webhook向钉钉群推送告警通知

    一、配置钉钉群 1、新建一个接收通知的钉钉群 如下图,创建一个接收通知的钉钉群   选择项目群,点创建   输入群名称,右侧选择群成员,最后点击右下角的创建   2、对群进行设置 点群右上角的设置按钮    点击 “智能群助手”   点 “添加机器人”   点 添加机器人

    2023年04月15日
    浏览(49)
  • Java实现钉钉企业内部应用机器和自定义机器人发送消息

     公司让写一个服务监控的功能,当监测到服务停止时,向钉钉群里推送报警信息。之前大概看到钉钉的开放平台的API文档,好像能群发消息的只有机器人。 钉钉开放平台目前提供三种机器人: 企业内部应用机器人 群模板机器人 自定义机器人 本来向用自己比较熟悉的自定义

    2024年02月12日
    浏览(54)
  • jenkins配置钉钉机器人推送job构建信息

    系统设置—插件管理—可选插件—搜索DingTalk 点击新增 最后,先应用,再保存 最后,应用-保存 如果构建了job没有推送钉钉信息,重启下jenkins试试 http://ip:9000/restart

    2023年04月08日
    浏览(42)
  • 钉钉企业机器人单聊消息发送实践-大数据平台(XSailboat)消息中心消息推送

    在笔者开发的 大数据平台XSailboat 中有 消息中心 模块,用来全平台的消息收集,整理分拆、订阅发送等功能。消息推送方式支持钉钉群聊、钉钉单聊、短信通知。现记录一下企业机器人消息单聊推送的实现过程。 这是官方的开发文档地址:《机器人发送、查询和撤回单聊消

    2024年01月25日
    浏览(43)
  • 【超详细】服务器使用青龙面板跑联通余量脚本并接收钉钉机器人定时推送超详细教程

    本教程只适用于联通用户 使用场景: 经常需要登录联通营业厅查询流量较为麻烦,本教程是使用青龙面板启动定时任务跑联通余量(v4)的脚本进行定时查询流量情况。 效果图如下,教程最后会有教学,根据自己想要的格式修改脚本: 安装docker 安装青龙面板 安装完成后,访问ip

    2024年02月16日
    浏览(334)
  • java实现钉钉群机器人@机器人获取信息后,机器人回复(机器人接收消息)

    1.需求 鉴于需要使用钉钉群机器人回复,人们提出的问题,需要识别提出的问题中的,后端进行处理实现对应的业务逻辑 2.实现方式 用户@群机器人,附带提出的问题,后端接收消息后识别消息内容,读取到进行对应的业务逻辑操作后,机器人获取返回的信息后

    2024年02月14日
    浏览(51)
  • Java项目中利用飞书自定义机器人Webhook向飞书群推送告警通知

    今天来看一下如何在Java项目中利用飞书的自定义机器人Webhook向飞书群推送告警通知         企业存在给 特定群组 自动推送消息的需求,比如:监控报警推送、销售线索推送、运营内容推送等。        你可以在群聊中添加一个 自定义机器人 ,通过服务端调用  webh

    2023年04月14日
    浏览(86)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包