java通過釘釘機器人發(fā)消息的實現(xiàn)示例
更新時間:2023年09月07日 15:21:07 作者:小非肥
本文主要介紹了java通過釘釘機器人發(fā)消息的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
釘釘自定義機器人使用 加簽的配置 發(fā)送消息
注意:內(nèi)部群才可以創(chuàng)建自定義機器人
釘釘網(wǎng)址-自定義機器人創(chuàng)建
1、獲得的釘釘配置信息workhook和secret
//url路徑
private String URL = "https://oapi.dingtalk.com/robot/send?access_token=08ebaa04f98f7faacbacd80fa879463d85cdccdd6cef184ef01bb5a8b6ae6f6c";
//加簽密鑰
private String DINGDING_SECRET = "SEC27596efd776991b2f6786270fa59552459f64612b17adf377295669361af3fae";2、配置加簽
配置路徑
private String getSign() {
Long timestamp = System.currentTimeMillis();
String stringToSign = timestamp + "\n" + DINGDING_SECRET;
Mac mac = null;
String sign = null;
try {
mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(DINGDING_SECRET.getBytes("UTF-8"), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
} catch (Exception e) {
throw new IllegalArgumentException("加簽處理有誤");
}
return "×tamp=" + timestamp + "&sign=" + sign;
}3、按照釘釘要求整理json數(shù)據(jù)結(jié)構(gòu)
如果phone為null則發(fā)送普通消息,不為空則發(fā)送給特定的人
private JSONObject buildDingDingMessage(String phone, String message) {
//2、按要求配置參數(shù)格式
JSONObject json = new JSONObject();
json.put("msgtype", "text");
json.put("text", new JSONObject() {{
put("content", message);
}});
if (!UtilString.isBlank(phone)) {
ArrayList<String> list = new ArrayList<>();
list.add(phone);
json.put("at", new JSONObject() {{
put("atMobiles", list.toArray());
}});
}
return json;
} @Override
public void doSendMessage(String phone, String message) {
//1、檢查數(shù)據(jù)
if (UtilString.isBlank(message)) {
throw new IllegalArgumentException("請輸入釘釘服務(wù)機器人要輸出的信息");
}
//2、配置釘釘信息
JSONObject json = buildDingDingMessage(phone, message);
//3、請求
String url = URL + getSign();
String responseText = HttpClient.textBody(url)
.json(json.toJSONString())
.connectTimeout(60)
.readTimeout(5 * 60)
.writeTimeout(5 * 60)
.asString();
//無錯則不發(fā)送日志消息
JSONObject responseJson = JSON.parseObject(responseText);
if (!responseJson.getString("errmsg").equals("ok")) {
log.error(responseJson.getString("errmsg"));
}
}到此這篇關(guān)于java通過釘釘機器人發(fā)消息的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)java 釘釘機器人發(fā)消息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot2.x整合shiro權(quán)限框架的使用
這篇文章主要介紹了springboot2.x整合shiro權(quán)限框架的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Java實現(xiàn)從字符串中找出數(shù)字字符串的方法小結(jié)
這篇文章主要介紹了Java實現(xiàn)從字符串中找出數(shù)字字符串的方法,結(jié)合實例形式總結(jié)分析了Java查找數(shù)字字符串的常用技巧,需要的朋友可以參考下2016-03-03

