java发送钉钉消息到群(通过机器人)

java发送消息到钉钉群 阅读详情

可以参考 官方文档:https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.karFPe&treeId=257&articleId=105735&docType=1

1.新建一个群。添加自定义机器人。获取自定义机器人webhook。

2.封装消息实体类。

public class TextMessage {
    private String text;
    private List<String> atMobiles;
    private boolean isAtAll;

    public TextMessage(String text) {
        this.text = text;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public List<String> getAtMobiles() {
        return atMobiles;
    }

    public void setAtMobiles(List<String> atMobiles) {
        this.atMobiles = atMobiles;
    }

    public boolean isAtAll() {
        return isAtAll;
    }

    public void setIsAtAll(boolean isAtAll) {
        this.isAtAll = isAtAll;
    }

    public String toJsonString() {
        Map<String, Object> items = new HashMap<>();
        items.put("msgtype", "text");

        Map<String, String> textContent = new HashMap<>();
        if (StringUtils.isBlank(text)) {
            throw new IllegalArgumentException("text should not be blank");
        }
        textContent.put("content", text);
        items.put("text", textContent);

        Map<String, Object> atItems = new HashMap<>();
        if (atMobiles != null && !atMobiles.isEmpty()) {
            atItems.put("atMobiles", atMobiles);
        }
        if (isAtAll) {
            atItems.put("isAtAll", isAtAll);
        }
        items.put("at", atItems);

        return JSON.toJSONString(items);
    }
}

3.封装发送消息结果实体类

public class SendResult {
    private boolean isSuccess;
    private Integer errorCode;
    private String errorMsg;

    public boolean isSuccess() {
        return isSuccess;
    }

    public void setIsSuccess(boolean isSuccess) {
        this.isSuccess = isSuccess;
    }

    public Integer getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(Integer errorCode) {
        this.errorCode = errorCode;
    }

    public String getErrorMsg() {
        return errorMsg;
    }

    public void setErrorMsg(String errorMsg) {
        this.errorMsg = errorMsg;
    }

    @Override
    public String toString() {
        Map<String, Object> items = new HashMap<String, Object>();
        items.put("errorCode", errorCode);
        items.put("errorMsg", errorMsg);
        items.put("isSuccess", isSuccess);
        return JSON.toJSONString(items);
    }
}

4.发送消息通用类

public class RobotClient {
    HttpClient httpclient = HttpClients.createDefault();

    public SendResult send(String webhook, TextMessage message) throws IOException {
        HttpPost httppost = new HttpPost(webhook);
        httppost.addHeader("Content-Type", "application/json; charset=utf-8");
        StringEntity se = new StringEntity(message.toJsonString(), "utf-8");
        httppost.setEntity(se);
        SendResult sendResult = new SendResult();
        HttpResponse response = httpclient.execute(httppost);
        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            String result = EntityUtils.toString(response.getEntity());
            JSONObject obj = JSONObject.parseObject(result);
            Integer errcode = obj.getInteger("errcode");
            sendResult.setErrorCode(errcode);
            sendResult.setErrorMsg(obj.getString("errmsg"));
            sendResult.setIsSuccess(errcode.equals(0));
        }
        return sendResult;
    }
}

5.发送文本消息类

@Slf4j
public class SendTextMessage {
    //机器人消息token
    public static String WEBHOOK_TOKEN = "https://oapi.dingtalk.com/robot/send?access_token=xxx";

    private static RobotClient robot = new RobotClient();

    /**
     * 发送普通文本消息
     *
     * @param message
     * @return
     */
    public static SendResult send(String message) {
        TextMessage textMessage = new TextMessage(message);
        SendResult sendResult = null;
        try {
            sendResult = robot.send(WEBHOOK_TOKEN, textMessage);
        } catch (Exception e) {
            log.error("===> send robot message error:", sendResult);
        }
        return sendResult;
    }

    /**
     * 发送文本消息 可以@部分人
     *
     * @param message
     * @param atMobiles 要@人的电话号码 ArrayList<String>
     * @return
     */
    public static SendResult sendWithAt(String message, ArrayList<String> atMobiles) {
        TextMessage textMessage = new TextMessage(message);
        SendResult sendResult = null;
        textMessage.setAtMobiles(atMobiles);
        try {
            sendResult = robot.send(WEBHOOK_TOKEN, textMessage);
        } catch (Exception e) {
            log.error("===> send robot message atPeople error:", sendResult);
        }
        return sendResult;
    }

    /**
     * 发送文本消息 并@所有人
     *
     * @param message
     * @return
     */
    public static SendResult sendWithAtAll(String message) {
        TextMessage textMessage = new TextMessage(message);
        SendResult sendResult = null;
        textMessage.setIsAtAll(true);
        try {
            sendResult = robot.send(WEBHOOK_TOKEN, textMessage);
        } catch (Exception e) {
            log.error("===> send robot message atAll error:", sendResult);
        }
        return sendResult;
    }




}

 

java钉钉实现消息推送 java钉钉实现消息推送 最近wx内部查的比较严,所以域名经常被封0.0,本打算用短信通知,但是当时短信模板审核没有通过加上比较急,就用了钉钉。参考了一下百度,发一篇详细点的文档。 下载钉钉PC端,新建内部群,群设置找到智能群助手,添加机器人(自定义),安全选择加签 这里得到一个Webhook和secret(签名秘钥),接下来写接口代码(这里是微信域名检测): import cn.hutool... 阅读详情

相关推荐

高数 | 【极限与等价无穷小】两个重要极限 & 经典错误 & 什么情况下求极限可以直接带入

一. 第一个重要极限 二. 第二个重要极限 三. 导数定义式 全文见【高等数学】两个重要的极限 - 知乎

"You are worthy! You can do it!" 6万+

java发送钉钉群

java发送钉钉群

大伟的博客 873

告别测序污染:手把手教你用Decontam+SCRUB+FEAST完成微生物组数据清洗全流程

本文详细解析了使用Decontam、SCRUB和FEAST三大工具完成微生物组数据清洗的全流程。从环境准备、数据导入到污染物识别、样本间污染校正及溯源分析,提供了一套可复用的污染校正工作流,帮助研究者提升数据质量,确保后续分析的可靠性。

weixin_33462927的博客 317

钉钉发送消息详细教程-- java

希望能对你有所帮助 首先是进行前期准备工作 流程 随便申请一个企业钉钉(这个不用详细说了吧) 不用企业认证 只是成为管理员 (公司的话就跟管理员要管理员权限才能登进去) 申请成功之后登陆开发者后台钉钉开发者后台 3.进入首页点击应用开发-企业内部开发 4.进入到应用开发 进行应用创建 5.进行接口查看接口文档 我们以工作通知为例子 看一下文档 我们之后可以线上调试 获取token 用户ID获取 登陆钉钉后台通讯录查看钉钉 下面是硬货 直接复制到项目改一下就行了 /** *

weixin_44994494的博客 5442

用R语言实现“中断时间序列分析” --- R code for ITS

ITS方法可用于评估一项干预措施的效果,从水平改变和斜率改变两个角度来描述干预引起的变化。

franksui的博客 4030

微信小程序审核避坑指南:巧用 wx.getAccountInfoSync 实现审核与线上环境无感切换

本文详细介绍了如何利用`wx.getAccountInfoSync`API实现微信小程序审核与线上环境的无感切换。通过环境识别技术和动态渲染架构设计,开发者可以优雅解决审核资质门槛问题,同时保持生产环境的完整用户体验。文章包含组件化实现、全局状态管理等实用方案,帮助开发者提升审核通过率。

weixin_30527423的博客 260

java集成钉钉实现卡片消息发送

在Java中集成钉钉并发送卡片消息,你可以使用钉钉提供的Open API。以下是一个基本的步骤指南和示例代码,展示如何实现这一目标。

xuweilin的博客 2816

保姆级教程:用MATLAB搞定运动模糊图片修复(附完整代码与避坑指南)

本文提供了一份详细的MATLAB运动模糊图片修复教程,涵盖盲复原、图像复原等核心技术。通过傅里叶变换和Radon变换分析模糊参数,对比逆滤波、维纳滤波和Lucy-Richardson算法效果,并附完整代码与避坑指南,帮助用户实现专业级图像处理。

weixin_26765363的博客 230

钉钉实现文本消息发送(java)

通过使用钉钉机器人和Java编程,你可以轻松实现文本消息的发送。钉钉是一款流行的企业即时通讯工具,它提供了强大的消息发送功能,可以用于实现各种通知和提醒。本文将介绍如何使用Java编写一个简单的程序,通过钉钉机器人实现文本消息的发送。下面是一个使用Java编写的程序,用于向钉钉机器人发送文本消息。:你需要拥有一个钉钉企业工作台,并拥有管理员权限,以便能够创建和管理钉钉机器人。:在钉钉工作台中,创建一个机器人并获取Webhook地址,用于向机器人发送消息。如果一切顺利,你将在钉钉群中收到一条文本消息。

海的那边,还是海吗 3603

宝塔面板一键部署Z-Blog博客 - 内网穿透实现公网访问

Ubuntu系统作为Linux系统的一个重要分支,既有Linux系统的轻量化、高扩展性和长时间稳定运行,也拥有Windows一样的友好图形界面,因此可以作为熟悉服务器系统的良好选择。对于笔者来说,ubuntu系统最大的用处,就是可以让家里老旧的电脑重焕生机,让本已退居二线的电脑与cpolar内网穿透软件搭配,成为私人服务器,搭建自己喜欢的各种网站。今天,笔者就为大家介绍,如何使用cpolar内网穿透+Z-blog搭建私人博客网站。

m0_74808907的博客 3147

同步调相机启动与并网控制技术方案

同步调相机起动与并网控制技术方案采用背靠背变流器系统,通过静止变频器(SFC)策略实现无原动机驱动的同步电机从静止到同步转速的平稳起动。方案详细阐述了硬件自检、模块初始化、转子位置检测等关键环节,重点解决启动转矩为零、冲击电流大等挑战。系统基于STM32或C2000系列控制器,包含网侧/机侧变流器、检测保护单元及通信接口,通过励磁脉冲和电压响应分析实现高精度转子初始定位,为后续并网提供必要条件。代码级实现涵盖了ADC自检、数字IO验证及通信端口测试等核心功能。

huanghm88的专栏 308

Java利用钉钉机器人实现发送群消息

JAVA实现钉钉消息推送

weixin_42672802的博客 1397

R语言缺失值填补|插值法、均值法、邻近法

本文主要介绍如何利用R语言进行数值型缺失值的填补。主要使用zoo包中的na.aggregate() 、na.approx()、na.locf() 函数进行缺失值的均值填补、线性插值填补以及邻近值填补。

Mrrunsen的博客 3843

java如何发送ding消息_java发送钉钉消息到群(通过机器人)

1.新建一个群。添加自定义机器人。获取自定义机器人webhook。2.封装消息实体类。public class TextMessage {private String text;private List atMobiles;private boolean isAtAll;public TextMessage(String text) {this.text = text;}public String...

weixin_42300175的博客 752

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java发送消息给钉钉_java发送钉钉消息到群(通过机器人)

1.新建一个群。添加自定义机器人。获取自定义机器人webhook。2.封装消息实体类。public class TextMessage {private String text;private List atMobiles;private boolean isAtAll;public TextMessage(String text) {this.text = text;}public String...

weixin_36356002的博客 1249

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

关于java 使用钉钉机器人发布群消息

关于java 使用钉钉机器人发布群消息 懒得写基本逻辑 ,代码有注解 #具体代码: 1、测试类: package test1; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class StarterAPP { public static void main(String []args) throws IOException { SendDemo send

a_123456y的博客 278

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

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

热爱码农的平民博客 1085

Java项目如何接入钉钉群机器人

钉钉

lunatic__的博客 981

Java对接钉钉机器人推送消息

java对接钉钉机器人推送消息

qq_2321620071的博客 8314

java 发送通知和接受通知_钉钉机器人群消息通知java版

1、创建钉钉群2、添加群机器人3、测试发送消息4、java代码实现public static void main(String[] args) { try { //钉钉机器人地址(配置机器人的webhook) String dingUrl = "https://oapi.dingtalk.com/robot/send?access_toke...

weixin_42297439的博客 1058

SpringBoot项目发送钉钉消息

在工作中的一些告警需要发送钉钉通知,有的是发给个人,有的要发到群里,这时项目就需要接入钉钉,实现发消息的功能

c103363的博客 2090

java代码调用钉钉自定义机器人发送群信息

钉钉官方文档 https://open.dingtalk.com/document/orgapp/custom-robot-access。

qq_44570295的博客 604

监控告警:钉钉告警 【钉钉机器人发送消息,集成SpringBoot】

钉钉机器人发送消息,集成springboot

sunrj_niu的博客 1170

钉钉机器人关键词应答_钉钉机器人群消息通知java版

1、创建钉钉群2、添加群机器人3、测试发送消息4、java代码实现public static void main(String[] args) { try { //钉钉机器人地址(配置机器人的webhook) String dingUrl = "https://oapi.dingtalk.com/robot/send?access_toke...

weixin_39954569的博客 998

钉钉机器人定时提醒

一、逻辑步骤 1、选择对应的群,新建机器人,定义关键字。 此时可以获得Webhook地址和关键字。 2、获取到Webhook地址后,用户可以向这个地址发起HTTP POST 请求,即可实现给该钉钉群发送消息。 二、实现 @Scheduled(cron = " 0 0 17 ? * MON-FRI " ) //定时,周一至周五下午五点 public void SendRemind() { /*发送钉钉提醒:关键字+access_token MarkdownMessage mes

weixin_41769596的博客 1429

Java操作钉钉机器人

一、添加钉钉机器人 1、在群设置 > 智能群助手 > 添加机器人 2、我们可以对机器人做出三个限制,包括:自定义关键词、加签、IP限制。而我这里使用自定义关键词,也就是只有包含设定关键词的才能正常发送消息到群中。 3、确定添加后,将得到webhook的地址(相当于token吧)。 二、s ...

赵昕彧 1707
上一篇: gradle安装及idea导入gradle项目
下一篇: SpringBoot+MyBatis多数据源使用
codeLife1993
博客等级 码龄8年 23粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值