当前位置:网站首页>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消息里@手机号 来实现。
参考:
边栏推荐
- 每日一题:1175.质数排列
- Crowncad (crown CAD), the first fully independent 3D CAD platform based on Cloud Architecture in China
- De4000h storage installation configuration
- (POJ - 1984) navigation nightare (weighted and search set)
- Redis数据库持久化
- Astro learning notes
- Japan bet on national luck: Web3.0, anyway, is not the first time to fail!
- 2022 Heilongjiang provincial examination on the writing skills of Application Essays
- Add sequence number column to query results in MySQL
- Unity SKFramework框架(十六)、Package Manager 开发工具包管理器
猜你喜欢

2022零代码/低代码开发白皮书【伙伴云出品】附下载

Drawing Nyquist diagram with MATLAB

Redis数据库持久化

能自动更新的万能周报模板,有手就会用!

2022 Heilongjiang provincial examination on the writing skills of Application Essays

Gee learning notes 2

伙伴云表格强势升级!Pro版,更非凡!

Memory management 01 - link script

OpenFOAM:lduMatrix&lduAddressing

Integral link, inertia link and proportion link in Simulink
随机推荐
Daily practice of C language --- monkeys divide peaches
Winter vacation daily question - lucky numbers in the matrix
题解:《你的飞碟在这儿》、《哥德巴赫猜想》
[Unity]使用GB2312,打包后程序不正常解决方案
机器学习基础(二)——训练集和测试集的划分
Skillfully use SSH to get through the Internet restrictions
I did it with two lines of code. As a result, my sister had a more ingenious way
诚邀青年创作者,一起在元宇宙里与投资人、创业者交流人生如何做选择……...
Sum of the first n terms of Fibonacci (fast power of matrix)
Bridge of undirected graph
net share
Unity skframework framework (XX), VFX lab special effects library
leetcode621. task scheduler
MAC (MacOS Monterey 12.2 M1) personal use PHP development
Why is the default of switch followed by break?
Detailed collection of common MySQL commands
Don't spend money, spend an hour to build your own blog website
Everyone wants to eat a broken buffet. It's almost cold
Tupang multi-target tracking! BOT sort: robust correlated multi pedestrian tracking
2022 zero code / low code development white paper [produced by partner cloud] with download