use http instead of alibaba-dingtalk-service-sdk

pull/996/head
baymax55 3 years ago
parent 01d9db161a
commit 43a82f8aae

@ -21,16 +21,13 @@ import cn.hippo4j.common.toolkit.CollectionUtil;
import cn.hippo4j.common.toolkit.FileUtil; import cn.hippo4j.common.toolkit.FileUtil;
import cn.hippo4j.common.toolkit.Singleton; import cn.hippo4j.common.toolkit.Singleton;
import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.StringUtil;
import cn.hippo4j.common.toolkit.http.HttpUtil;
import cn.hippo4j.message.dto.NotifyConfigDTO; import cn.hippo4j.message.dto.NotifyConfigDTO;
import cn.hippo4j.message.enums.NotifyPlatformEnum; import cn.hippo4j.message.enums.NotifyPlatformEnum;
import cn.hippo4j.message.platform.base.AbstractRobotSendMessageHandler; import cn.hippo4j.message.platform.base.AbstractRobotSendMessageHandler;
import cn.hippo4j.message.platform.base.RobotMessageActualContent; import cn.hippo4j.message.platform.base.RobotMessageActualContent;
import cn.hippo4j.message.platform.base.RobotMessageExecuteDTO; import cn.hippo4j.message.platform.base.RobotMessageExecuteDTO;
import cn.hippo4j.message.platform.constant.DingAlarmConstants; import cn.hippo4j.message.platform.constant.DingAlarmConstants;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiRobotSendRequest;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
@ -38,6 +35,8 @@ import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Objects; import java.util.Objects;
import static cn.hippo4j.message.platform.constant.DingAlarmConstants.*; import static cn.hippo4j.message.platform.constant.DingAlarmConstants.*;
@ -86,20 +85,20 @@ public class DingSendMessageHandler extends AbstractRobotSendMessageHandler {
log.error("Failed to sign the message sent by nailing.", ex); log.error("Failed to sign the message sent by nailing.", ex);
} }
} }
DingTalkClient dingTalkClient = new DefaultDingTalkClient(serverUrl); String title = Objects.equals(notifyConfig.getType(), "CONFIG") ? DING_NOTICE_TITLE : DING_ALARM_TITLE;
OapiRobotSendRequest request = new OapiRobotSendRequest(); String text = robotMessageExecuteDTO.getText();
request.setMsgtype("markdown"); ArrayList<String> atMobiles = CollectionUtil.newArrayList(notifyConfig.getReceives().split(","));
OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
markdown.setTitle(Objects.equals(notifyConfig.getType(), "CONFIG") ? DING_NOTICE_TITLE : DING_ALARM_TITLE); HashMap<String, Object> markdown = new HashMap<>();
markdown.setText(robotMessageExecuteDTO.getText()); markdown.put("title", title);
OapiRobotSendRequest.At at = new OapiRobotSendRequest.At(); markdown.put("text", text);
at.setAtMobiles(CollectionUtil.newArrayList(notifyConfig.getReceives().split(","))); HashMap<String, Object> at = new HashMap<>();
request.setAt(at); at.put("atMobiles", atMobiles);
request.setMarkdown(markdown);
try { HashMap<String, Object> markdownJson = new HashMap<>();
dingTalkClient.execute(request); markdownJson.put("msgtype", "markdown");
} catch (ApiException ex) { markdownJson.put("markdown", markdown);
log.error("Ding failed to send message", ex); markdownJson.put("at", at);
} HttpUtil.post(serverUrl, markdownJson);
} }
} }

Loading…
Cancel
Save