java调用钉钉的群自定义机器人
1.创建钉钉群自定义机器人
2.创建好之后钉钉会返回wobhook地址,这个地址用来访问钉钉接口,如果之前选择了加签,这个地址需要再处理,否则不需要 。(点击设置说明按钮,进入钉钉的官方文档)
3.查看钉钉的官方文档的自定义机器人的调用的说明,选择自己需要发送的类型是文本类型的还是其他的,我这里选择文本类型的
4.将sdk的java案例复制到自己的后端代码里面去,对代码需要的格式类型保留,不需要的去掉,如果选择文本类型,也建议保留OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
// isAtAll类型如果不为Boolean,请升级至最新SDK
at.setIsAtAll(true);
request.setAt(at);
5. 调用前的准备工作:
6. 调用的工具类案例(测试能发送至钉钉群)
@Testpublic void test17() throws ApiException, UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException {String url = "https://oapi.dingtalk.com/robot/send?access_token=XXXX";dingDingUtils.sendDingDing(url);}
package com.example.demo.utils;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.codec.binary.Base64;
import org.springframework.stereotype.Component;
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;/*** @author qwa* @Description* @date 18/4/2022*/
@Component("dingDingUtils")
@Slf4j
public class DingDingUtils {public void sendDingDing(String url) throws ApiException, UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException {//https://oapi.dingtalk.com/robot/send?access_token=XXXXXX×tamp=XXX&sign=XXX//如果创建机器人的时候选择了加密,就需要getSign(XXX) : xxx指的是加签的时候生成的字符串。另外可以点击 密钥如上,签名方法请参考 说明文档String sign = getSign("XXX");url = url + sign ;DingTalkClient client = new DefaultDingTalkClient(url);OapiRobotSendRequest request = new OapiRobotSendRequest();request.setMsgtype("text");OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();text.setContent("测试异常!");request.setText(text);//就算不艾特某个人,也加上,setIsAtAll(false)OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();// isAtAll类型如果不为Boolean,请升级至最新SDKat.setIsAtAll(false);request.setAt(at);OapiRobotSendResponse response = client.execute(request);}public String getSign(String secret) throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {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"));String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)),"UTF-8");//https://oapi.dingtalk.com/robot/send?access_token=XXXXXX×tamp=XXX&sign=XXXString signUrl = "×tamp="+timestamp+"&sign="+sign ;return signUrl ;}
}
java调用钉钉的群自定义机器人相关推荐
- python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)
0.安装requests模块 Linux下执行 pip3 install requests 1.request简介 Reqest是Python的HTTP库,内部采用urillib3模块,但是用起来比u ...
- 机器人聊天软件c#_使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_132 最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用 ...
- 使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用,真的让人觉得阿里的pm都是脑残才会设计出这种脑残产品,不过吐槽归吐槽,该用 ...
- 最新教程:Python开发钉钉群自定义机器人
最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用,真的让人觉得阿里的pm都是脑残才会设计出这种脑残产品,不过吐槽归吐槽,该用 ...
- 通过Webhook接入钉钉群自定义机器人
在钉钉群中添加Webhook自定义机器人, 复制Webhook地址保存: https://oapi.dingtalk.com/robot/send?access_token=xxxxxx 安全设置:选 ...
- 钉钉单聊/群聊机器人实现思路
钉钉官网文档:https://open.dingtalk.com/document/group/robot-overview 一.钉钉开发平台 1.申请机器人 应用开发-企业内部开发-基础信息-机器人 ...
- 把盏言欢,款款而谈,ChatGPT结合钉钉机器人(outgoing回调)打造人工智能群聊/单聊场景,基于Python3.10
就像黑火药时代里突然诞生的核弹一样,OpenAI的ChatGPT语言模型的横空出世,是人工智能技术发展史上的一个重要里程碑.这是一款无与伦比.超凡绝伦的模型,能够进行自然语言推理和对话,并且具有出色的 ...
- 【办公自动化】钉钉机器人每日定时向不同群组发送消息
实现每日上午10点自动向各供应商群同步前一日产品数据.通过python+钉钉机器人实现该功能.具体步骤如下: 目录 1.创建机器人获得token 2.编写脚本 2.1 数据整理 2.2 消息发送 3. ...
- 钉钉群机器人消息通知
最近项目需要授权,需要及时通知授权失败的工单,所以就用到了钉钉机器人在群里实时通知,然后就写下了这篇文章.如果放到服务器出现域名错误修改hosts文件,在服务器执行vi /etc/hosts可直接修改 ...
最新文章
- 哈夫曼树实现压缩文件
- 7-2 然后是几点 (Java)
- 网站单页面排名提升的技巧有哪些?
- [CareerCup] 1.6 Rotate Image 翻转图像
- Tomcat启用HTTPS协议配置过程
- oracle linux下数据迁移到不同服务器
- python共享单车数据分析_共享单车数据可视化分析(Python/Seaborn)
- KiB、MiB与KB、MB的区别
- oracle修改dbf文件,如何修改Oracle的dbf文件位置
- 澳大利亚麦考瑞大学计算机系杨坚教授团队招收2022-2023年博士研究生
- 今日算法笔试练习【5】(08-06)(历年笔试题)
- 【排序算法】快速排序的分析改进
- 大数据背景下的智慧物流:物流行业解决方案
- Android系统永不熄屏和取消开机锁屏功能
- Linux 中的TAB键名字补全使用方法
- 如何制定软件项目测试计划
- Android仿微信发起群聊的列表样式
- OLE技术专题——第二讲:复合文件
- 【九宫切图】什么是九宫绘图
- 欢迎关注公众号:Kotlin开发者社区
热门文章
- vue3+echarts+地图(3D立体)
- 解决【unity3d】播放视频的两种操作方式
- Redis 源码该怎么读?(译文)
- 电大管理英语4计算机期末考试,2018年电大《管理英语(4)》期末试题和答案.pdf...
- _nullable、nullable、nonnull区别
- 系统安装、qt配置、安装pcie驱动
- pycharm怎么改成中文(详细版)
- arduino——编码器示例(中断控制)
- 人物专访 | Artifex Studio合成师兼统筹小姐姐不一样的经历
- 【UE4官方文档翻译】Unreal Engine 4 For Unity Developers (针对Unity开发者的UE4)