当前位置:网站首页>Dingtalk 发送消息
Dingtalk 发送消息
2022-07-02 10:14:00 【阳光下的小鱼】
依赖包:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
<version>2.0.0</version>
</dependency>
代码实现:
package com.sq.proxy.job;
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 org.apache.commons.codec.binary.Base64;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.net.URLEncoder;
import java.util.Arrays;
public class DingTalk3 {
static String webHook = "https://oapi.dingtalk.com/robot/send?access_token=xxx";
public static void main(String[] args_) throws Exception {
Long timestamp = System.currentTimeMillis();
String secret = "SEC6cd99f5d8e817df66c5759c246897b51c6be82a4df8f2ce6b8b39a7adfa3bfff";
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");
DingTalkClient client = new DefaultDingTalkClient(webHook+"&sign="+sign+"×tamp="+timestamp);
OapiRobotSendRequest request = new OapiRobotSendRequest();
request.setMsgtype("text");
OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
text.setContent("测试文本消息");
request.setText(text);
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
at.setAtMobiles(Arrays.asList("150xx41","137yyy64"));
// isAtAll类型如果不为Boolean,请升级至最新SDK
at.setIsAtAll(true);
// at.setAtUserIds(Arrays.asList("109929","32099"));
request.setAt(at);
request.setMsgtype("link");
OapiRobotSendRequest.Link link = new OapiRobotSendRequest.Link();
link.setMessageUrl("https://www.dingtalk.com/");
link.setPicUrl("");
link.setTitle("时代的火车向前开");
link.setText("这个即将发布的新版本,创始人xx称它为红树林。而在此之前,每当面临重大升级,产品经理们都会取一个应景的代号,这一次,为什么是红树林");
request.setLink(link);
// request.setMsgtype("markdown");
// OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
// markdown.setTitle("杭州天气");
// markdown.setText("#### 杭州天气 @156xxxx8827\n" +
// "> 9度,西北风1级,空气良89,相对温度73%\n\n" +
// "> \n" +
// "> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n");
// request.setMarkdown(markdown);
OapiRobotSendResponse response = client.execute(request);
System.out.println(JSON.toJSON(response));
}
}
常见问题:
1:如果要@某些人怎么实现?
1.1 将要@的人的手机号放到setAtMobiles方法里
1.2 在text消息里@手机号 来实现。
参考:
边栏推荐
- mac(macos Monterey12.2 m1) 个人使用php开发
- Skillfully use SSH to get through the Internet restrictions
- Answer: can the audio be set to on by default during easydss video on demand?
- nohup命令
- Add sequence number column to query results in MySQL
- Unity skframework framework (XVIII), roamcameracontroller roaming perspective camera control script
- Winter vacation daily question - lucky numbers in the matrix
- Astro learning notes
- 2022 zero code / low code development white paper [produced by partner cloud] with download
- 2022 Heilongjiang provincial examination on the writing skills of Application Essays
猜你喜欢
Unity SKFramework框架(十五)、Singleton 单例
leetcode621. task scheduler
[OpenGL] notes 29. Advanced lighting (specular highlights)
Sum of the first n terms of Fibonacci (fast power of matrix)
How to explain binary search to my sister? This is really difficult, fan!
题解《子数整数》、《欢乐地跳》、《开灯》
Unity skframework framework (XVII), freecameracontroller God view / free view camera control script
net share
Tupang multi-target tracking! BOT sort: robust correlated multi pedestrian tracking
Embedded software development
随机推荐
口袋奇兵点评
What are eNB, EPC and PGW?
Unity skframework framework (XV), singleton singleton
How much do you know about free SSL certificates? The difference between free SSL certificate and charged SSL certificate
Unity SKFramework框架(二十一)、Texture Filter 贴图资源筛选工具
Uniapp develops wechat applet Tencent map function and generates sig signature of location cloud
Add sequence number column to query results in MySQL
SSL证书的分类有哪些?如何选择合适的SSL证书?
运维必备——ELK日志分析系统
PR usage skills, how to use PR to watermark?
Achievements in science and Technology (27)
Daily practice of C language --- monkeys divide peaches
Crowncad (crown CAD), the first fully independent 3D CAD platform based on Cloud Architecture in China
操作教程:EasyDSS如何将MP4点播文件转化成RTSP视频流?
D how to check null
Android kotlin broadcast technology point
Engineers who can't read device manuals are not good cooks
Record idea shortcut keys
Unity skframework framework (XVIII), roamcameracontroller roaming perspective camera control script
挥发性有机物TVOC、VOC、VOCS气体检测+解决方案