java实现钉钉自定义机器人发送消息

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

       钉钉作为现在很多企业的移动办公平台,具有很多很强大的功能,可以帮助我们更加及时的发现问题,解决问题,今天我们做一个java实现钉钉自定义机器发送消息的功能。

        首先,先放出官方文档地址:https://open.dingtalk.com/document/orgapp/custom-robot-access

        接下来,先创建一个钉钉的群,打开钉钉群,在群的右上角点击齿轮图标 - 群设置,

java钉钉发送消息,JAVA,钉钉,机器人

再打开的群设置按钮,点击机器人,选择机器人 - 添加机器人 - 自定义机器人 

java钉钉发送消息,JAVA,钉钉,机器人

添加机器人

java钉钉发送消息,JAVA,钉钉,机器人

 自定义机器人java钉钉发送消息,JAVA,钉钉,机器人

 进入到机器人设置页面

java钉钉发送消息,JAVA,钉钉,机器人

设置完成之后,会生成一个webhook地址,复制该地址出来。

java钉钉发送消息,JAVA,钉钉,机器人

        然后点击完成,群内自定义机器人就添加完成了。

         机器人添加完成之后,我们需要在代码中实现对机器人发送消息的功能。

         在java代码中,我们可以创建一个钉钉发送消息的utils类,代码如下

public class DingdingTalkUtils {

    public static String url = "webhook地址"; //生成机器人申城webhook地址

    public static String keyWords = "安全设置-关键字内容"
    public static String access__secret = "安全设置-加签"; //安全设置 - 加签方式下生成的秘钥

    public static String sendKeyWordMessage(String json) {
        try {
            if (!StringUtils.contains(json, keyWords)) {
                log.error("使用了钉钉群发送消息但是没有关键词 :{} >>> {} 将无法发送消息,直接退回", json, keyWords);
                return null;
            }
            Map<String, String> tmpMap = new HashMap<>();
            tmpMap.put("content", json);

            Map<String, Object> contentMap = new HashMap<>();
            contentMap.put("msgtype", "text");
            contentMap.put("text", tmpMap);

            Map<String, String> headers = new HashMap<>();
            headers.put("Content-Type", "application/json; charset=utf-8");
            headers.put("Accept", "application/json");
            return HttpSupport.makeFastConnect().doPostBody(url,               JsonUtil.obj2Json(contentMap), headers).result();

        } catch (Exception e) {
            log.error("发送钉钉消息出现异常:{}", e.getMessage());
        }
        return null;
    }

    public static String sendEncryptMessage(String json, String secretKey) {
        try {
            String url = getUrl(secretKey);
            Map<String, String> tmpMap = new HashMap<>();
            tmpMap.put("content", json);

            Map<String, Object> contentMap = new HashMap<>();
            contentMap.put("msgtype", "text");
            contentMap.put("text", tmpMap);

            Map<String, String> headers = new HashMap<>();
            headers.put("Content-Type", "application/json; charset=utf-8");
            headers.put("Accept", "application/json");
            return HttpSupport.makeFastConnect().doPostBody(url, JsonUtil.obj2Json(contentMap), headers).result();

        } catch (Exception e) {
            log.error("发送钉钉消息出现异常:{}", e.getMessage());
        }
        return null;
    }

    private static String getUrl(String secretKey) throws Exception {
        String result = url;
        long timestamp = System.currentTimeMillis();
        String stringToSign = timestamp + "\n" + secretKey;
        Mac mac = Mac.getInstance("HmacSHA256");
        mac.init(new SecretKeySpec(secretKey.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
        byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));
        String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
        result += "&timestamp=" + timestamp + "&sign=" + sign;
        return result;
    }

}

 上面的代码提供了通过关键字匹配发送,以及加签方式发送消息的两种方法,其中

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

这里面指定了发送的消息以何种形式展现,目前钉钉提供了五种展现消息的形式:
  • 文本 (text)

  • 链接 (link)

  • markdown(markdown)

  • ActionCard

  • FeedCard

 另外,如果引入钉钉的sdk,还能实现@功能,有兴趣的同学可以看一下官方文档,实现钉钉机器人发送消息的功能并不难实现,相信难不倒大家,不过还是希望这篇文章能对大家有一点点的帮助,好了,今天的分享就到这里了,感谢大家!文章来源地址https://www.toymoban.com/news/detail-555009.html

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

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

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

相关文章

  • 对接钉钉机器人发送钉钉通知

    实现效果 话不多说 直接上代码 http工具类

    2024年01月25日
    浏览(46)
  • Outlook无需API开发连接钉钉群机器人,实现新增会议日程自动发送群消息通知

    Outlook用户使用场景: 在企业中,会议和活动的顺利举行对于业务运转和团队协作至关重要。然而,计划的变动总是无法避免,这可能会导致其他人的计划受到影响,打乱原有的安排。为了解决这个问题,许多企业开始使用各种工具和技术来确保信息的及时传递和更新。其中

    2024年02月09日
    浏览(41)
  • 钉钉机器人发送jira消息到钉钉群聊

    前期准备 1.安装JIRA相关插件 Automation for Jira - Server Lite。 、 2.配置钉钉群机器人 01.钉钉群右上角点击群设置,选择智能群助手,点击添加机器人,选择自定义机器人; 02.给机器人起个名字,消息推送开启,复制出webhook,后面会用到,勾选自定义,填写(

    2024年02月15日
    浏览(49)
  • 在钉钉群通过机器人发送信息

    在第三方API接口对接中,需要及时获取第三方接口请求结果情况,所以在代码中融合钉钉机器人,对请求的异常结果及时发送通知。 自定义机器人参考链接 通用响应参数-封装API的错误码 通用响应参数-状态码 通过返回类定义 在钉钉群可以通过手机号码@指定人员 关于钉钉群

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

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

    2024年02月14日
    浏览(53)
  • 钉钉机器人发送Markdown格式的内容

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

    2024年02月14日
    浏览(41)
  • 企业微信、飞书、钉钉机器人消息发送工具类

    其实你也可以使用RestTemplate,我这里主要是用到了webflux框架,所以需要实例化客户端请求对象

    2024年02月10日
    浏览(52)
  • prometheus告警发送到钉钉群机器人的全部署流程

    前置条件:prometheus安装完成,创建钉钉群机器人,我这里使用的是指定ip的方式 修改Prometheus配置文件prometheus.yml,添加以下配置: 在目录/usr/local/prometheus/rules/下创建告警文件hoststats-alert.rules内容如下: 重启Prometheus后访问Prometheus http://127.0.0.1:9090/rules可以查看当前以加载的规

    2024年02月11日
    浏览(44)
  • 【办公自动化】钉钉机器人每日定时向不同群组发送消息

            实现每日上午10点自动向各供应商群同步前一日产品数据。通过python+钉钉机器人实现该功能。具体步骤如下: 目录 1.创建机器人获得token 2.编写脚本 2.1 数据整理 2.2 消息发送 3.设置定时任务 群设置--智能群助手--添加机器人--自定义(通过Webhook接入自定义服务)

    2024年02月08日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包