use of com.dingtalk.api.DingTalkClient in project olive by ClareTung.
the class DingTalkAlarmService method sendMessage.
public void sendMessage(String content) {
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"));
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
String serverUrl = webhook + "×tamp=" + timestamp + "&sign=" + sign;
DingTalkClient client = new DefaultDingTalkClient(serverUrl);
OapiRobotSendRequest request = new OapiRobotSendRequest();
request.setMsgtype("text");
OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
text.setContent(content);
request.setText(text);
client.execute(request);
} catch (ApiException e) {
e.printStackTrace();
log.error(e.getMessage(), e);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
log.error(e.getMessage(), e);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
log.error(e.getMessage(), e);
} catch (InvalidKeyException e) {
e.printStackTrace();
log.error(e.getMessage(), e);
}
}
use of com.dingtalk.api.DingTalkClient in project hippo4j by longtai-cn.
the class DingSendMessageHandler method execute.
private void execute(NotifyConfigDTO notifyConfig, String title, String text, List<String> mobiles) {
String serverUrl = DingAlarmConstants.DING_ROBOT_SERVER_URL + notifyConfig.getSecretKey();
String secret = notifyConfig.getSecret();
if (StringUtil.isNotBlank(secret)) {
long timestamp = System.currentTimeMillis();
String stringToSign = timestamp + "\n" + secret;
try {
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), StandardCharsets.UTF_8.name());
serverUrl = serverUrl + "×tamp=" + timestamp + "&sign=" + sign;
} catch (Exception ex) {
log.error("Failed to sign the message sent by nailing.", ex);
}
}
DingTalkClient dingTalkClient = new DefaultDingTalkClient(serverUrl);
OapiRobotSendRequest request = new OapiRobotSendRequest();
request.setMsgtype("markdown");
OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
markdown.setTitle(title);
markdown.setText(text);
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
at.setAtMobiles(mobiles);
request.setAt(at);
request.setMarkdown(markdown);
try {
dingTalkClient.execute(request);
} catch (ApiException ex) {
log.error("Ding failed to send message", ex);
}
}
use of com.dingtalk.api.DingTalkClient in project dynamic-threadpool by acmenlt.
the class OpenChangeTimedTask method sendDingMessage.
public void sendDingMessage(OpenChangeInfo itemInfo) {
String gitHubItemUrl = itemInfo.getHtml_url();
String markdownText = String.format("<font color='#2a9d8f'>[通知] </font> GitHub Star Fork 变更通知 \n\n" + " --- \n\n " + "<font color='#708090' size=2>项目名称:HIPPO-JAVA</font> \n\n" + "<font color='#708090' size=2>项目地址:[%s](%s)</font> \n\n" + " --- \n\n " + "<font color='#708090' size=2>Hippo Stars Add:</font><font color='#FF8C00' size=2>%s</font> \n\n " + "<font color='#708090' size=2>Hippo Forks Add:</font><font color='#FF8C00' size=2>%s</font> \n\n " + " --- \n\n " + "<font color='#708090' size=2>Hippo Now Star:[%d](" + gitHubItemUrl + "/stargazers)</font> \n\n" + "<font color='#708090' size=2>Hippo Now Fork:[%d](" + gitHubItemUrl + "/members)</font> \n\n" + "<font color='#708090' size=2>Hippo Open Issue:[%d](" + gitHubItemUrl + "/issues)</font> \n\n" + "<font color='#708090' size=2>Hippo Subscribers Count:[%d](" + gitHubItemUrl + "/watchers)</font> \n\n" + " --- \n\n " + "<font color='#708090' size=2>友情提示:5 分钟内 Star Fork 有变更则通知(可配置)</font> \n\n" + "<font color='#708090' size=2>OWNER:Long-Tai</font> \n\n" + " --- \n\n " + "**播报时间:%s**", itemInfo.getName().toUpperCase(), gitHubItemUrl, itemInfo.getStar_add() == null ? "-" : itemInfo.getStar_add().toString() + "+", itemInfo.getFork_add() == null ? "-" : itemInfo.getFork_add().toString() + "+", itemInfo.getStargazers_count(), itemInfo.getForks_count(), itemInfo.getOpen_issues_count(), itemInfo.getSubscribers_count(), DateUtil.now());
OpenChangeNotifyBootstrapProperties.NotifyConfig notifyConfig = bootstrapProperties.getNotifys().get(0);
String serverUrl = notifyConfig.getUrl() + notifyConfig.getToken();
DingTalkClient dingTalkClient = new DefaultDingTalkClient(serverUrl);
OapiRobotSendRequest request = new OapiRobotSendRequest();
request.setMsgtype("markdown");
OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
markdown.setTitle("GitHub Star Fork 变更通知");
markdown.setText(markdownText);
request.setMarkdown(markdown);
try {
dingTalkClient.execute(request);
} catch (ApiException ex) {
log.error("Ding failed to send message.", ex.getMessage());
}
}
Aggregations