一、创建自定义机器人获取webhook和加签

二、引入依赖

        <!--钉钉服务端SDK--><dependency><groupId>com.aliyun</groupId><artifactId>alibaba-dingtalk-service-sdk</artifactId><version>2.0.0</version></dependency><!-- 阿里fastjson包JSON转换--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency>

三、用上我写的工具类

package cn.sdata.baseframe.util;import com.alibaba.fastjson.JSON;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiRobotSendRequest;
import com.dingtalk.api.response.OapiRobotSendResponse;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.codec.binary.Base64;
import org.springframework.util.CollectionUtils;import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.List;/*** @author lzw* @create 2022-08-11-11:52*/
//钉钉机器人工具类
@Slf4j
public class DingTalkUtil {/**** 发送普通文本消息** @param content    文本消息* @param mobileList 指定@ 联系人* @param isAtAll    是否@ 全部联系人* @return OapiRobotSendResponse*/public static OapiRobotSendResponse sendMessageByText(String ACCESS_TOKEN, String SECRET, String content, List<String> mobileList, boolean isAtAll) {String sign = null;try {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"));sign = "&timestamp=" + timestamp + "&sign=" + URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");} catch (NoSuchAlgorithmException e) {throw new RuntimeException(e);} catch (InvalidKeyException e) {throw new RuntimeException(e);} catch (UnsupportedEncodingException e) {throw new RuntimeException(e);}DingTalkClient client = null;client = new DefaultDingTalkClient(ACCESS_TOKEN + sign);if (StringUtils.isEmpty(content)) {return null;}//参数 参数类型    必须  说明//msgtype String  是   消息类型,此时固定为:text//content  String  是   消息内容//atMobiles Array   否   被@人的手机号(在content里添加@人的手机号)//isAtAll   bool    否   @所有人时:true,否则为:falseOapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();text.setContent(content);OapiRobotSendRequest request = new OapiRobotSendRequest();if (!CollectionUtils.isEmpty(mobileList)) {// 发送消息并@ 以下手机号联系人OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();at.setAtMobiles(mobileList);at.setIsAtAll(isAtAll);request.setAt(at);}request.setMsgtype("text");request.setText(text);OapiRobotSendResponse response = new OapiRobotSendResponse();try {response = client.execute(request);System.out.println("【DingTalkUtils】发送普通文本消息 响应参数:" + JSON.toJSONString(response));} catch (ApiException e) {log.error("[发送普通文本消息]: 发送消息失败, 异常捕获{}", e.getMessage());}return response;}
}

三、业务代码直接调用

    @GetMapping("sendTask")public void sendTask() {String webhook = "https://**************";//webhookString sign = "SECa11e807dac9d805c8f93f8974c5f53217ef2d140f399d";//加签ArrayList<String> strings = ListUtil.toList("135****8888");//@用户的手机号Boolean isAtAll = true;//是否@所有人String data = "测试测试测试";//消息内容DingTalkUtil.sendMessageByText(webhook, sign, data, strings, isAtAll);}

四、消息发送成功

【钉钉】通过自定义机器人向钉钉群发送消息相关推荐

  1. 钉钉自定义机器人python_使用钉钉自定义机器人发送舔狗日记[70行][python]

    [Python] 纯文本查看 复制代码# -*- coding: utf-8 -*- import requests import json import time #下面是解密用到的模块 impor ...

  2. 钉钉自定义机器人配合SVN钩子事件进行消息的推送实践

    目前很多公司还是使用SVN(TortoiseSVN)进行版本控制,使用简单,适合管理一般项目.协同办公软件目前钉钉比较成熟,阿里也一直在宣传推广,这两年公司也在使用,主要用于信息的沟通,其它的绩效.考 ...

  3. java调用钉钉的群自定义机器人

    1.创建钉钉群自定义机器人 2.创建好之后钉钉会返回wobhook地址,这个地址用来访问钉钉接口,如果之前选择了加签,这个地址需要再处理,否则不需要 .(点击设置说明按钮,进入钉钉的官方文档) 3.查 ...

  4. python向钉钉发送本地文件_Python实现向钉钉群发送消息通知

    一 钉钉机器人使用场景 钉钉机器人是钉钉群的高级扩展功能,可以简单实现将第三方服务信息聚合到钉钉群中,实现信息的自动同步,常用场景如下:聚合Github.Gitlab等源码管理服务,实现源码更新同步: ...

  5. 做个“微信机器人”给指定的好友或者微信群发送消息

    背景简单说下,想给指定的微信好友或者微信群推送一些提醒或者通知. 做了如下研究,优缺点如下: 1.使用ichat或者wechaty 利用微信的web版接口,这种方式一是不稳定,将来有被微信砍掉的可能, ...

  6. 机器人聊天软件c#_使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_132 最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用 ...

  7. 使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)

    最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用,真的让人觉得阿里的pm都是脑残才会设计出这种脑残产品,不过吐槽归吐槽,该用 ...

  8. 最新教程:Python开发钉钉群自定义机器人

    最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用,真的让人觉得阿里的pm都是脑残才会设计出这种脑残产品,不过吐槽归吐槽,该用 ...

  9. 钉钉自定义机器人提示报警信息

    获取自定义机器人webhook 步骤一,在机器人管理页面选择"自定义"机器人,输入机器人名字并选择要发送消息的群,同时可以为机器人设置机器人头像. 步骤二,完成必要的安全设置(至少 ...

最新文章

  1. 性能监测与优化命令free
  2. 安装CocoaPod
  3. 黄梅理工学校计算机,黄梅理工学校2021年有哪些专业
  4. kfaka storm写入mysql_flume+kafka+storm+mysql架构设计
  5. mysql 语句 集锦_mysql 语句集锦
  6. android 本地ip获取,【android】 获取本地ip方法
  7. POI处理超过65536条记录
  8. JQuey中 attr('checked', true)设置状态只有第一次有用
  9. (笔记)VC6插件安装(VC6LineNumberAddin)
  10. ITSM群(48132184)讨论精选
  11. 用HTML写一个仓库管理系统,welcome.html
  12. python 标准库: csv
  13. Unity 与 UE4 双引擎版本四叉树的创建与可视化
  14. C# 同间字查询 (汉字转拼音 拼音转汉字 简体繁体互转 )
  15. 关于传递函数的双边线性Z变换+差分方程
  16. selenium+python爬取简书文章
  17. 关于音箱的鉴别与选择
  18. 今日份Ps练习 | 剪纸效果
  19. 众多商家都在用的小魔推同城拓客,到底是怎么做的
  20. OCR快速入门(二)| Python版

热门文章

  1. java 表单_Java报表表单设计之表单样式设计
  2. MSQ-Index: A Succinct Index for Fast Graph SimilaritySearch
  3. Android实现简单的加法器,加法器的实现
  4. host 计算机英语作文,My Favorite Hostest英语作文
  5. 大神手机一周年:崛起了吗?
  6. 2021-09-01 学习笔记:Python爬虫、数据可视化
  7. 进阶篇:8)材料和工艺选择
  8. uniClound云开发创建流程
  9. oracle pls 00905,ORA-06550:line 1;column 7;pls-00103
  10. 修理网站一个多月不录入缘由剖析