java如何发送ding消息_java发送钉钉消息到群(通过机器人)

1.新建一个群。添加自定义机器人。获取自定义机器人webhook。

2.封装消息实体类。

public class TextMessage {

private String text;

private List atMobiles;

private boolean isAtAll;

public TextMessage(String text) {

this.text = text;

}

public String getText() {

return text;

}

public void setText(String text) {

this.text = text;

}

public List getAtMobiles() {

return atMobiles;

}

public void setAtMobiles(List atMobiles) {

this.atMobiles = atMobiles;

}

public boolean isAtAll() {

return isAtAll;

}

public void setIsAtAll(boolean isAtAll) {

this.isAtAll = isAtAll;

}

public String toJsonString() {

Map items = new HashMap<>();

items.put("msgtype", "text");

Map textContent = new HashMap<>();

if (StringUtils.isBlank(text)) {

throw new IllegalArgumentException("text should not be blank");

}

textContent.put("content", text);

items.put("text", textContent);

Map atItems = new HashMap<>();

if (atMobiles != null && !atMobiles.isEmpty()) {

atItems.put("atMobiles", atMobiles);

}

if (isAtAll) {

atItems.put("isAtAll", isAtAll);

}

items.put("at", atItems);

return JSON.toJSONString(items);

}

}

3.封装发送消息结果实体类

public class SendResult {

private boolean isSuccess;

private Integer errorCode;

private String errorMsg;

public boolean isSuccess() {

return isSuccess;

}

public void setIsSuccess(boolean isSuccess) {

this.isSuccess = isSuccess;

}

public Integer getErrorCode() {

return errorCode;

}

public void setErrorCode(Integer errorCode) {

this.errorCode = errorCode;

}

public String getErrorMsg() {

return errorMsg;

}

public void setErrorMsg(String errorMsg) {

this.errorMsg = errorMsg;

}

@Override

public String toString() {

Map items = new HashMap();

items.put("errorCode", errorCode);

items.put("errorMsg", errorMsg);

items.put("isSuccess", isSuccess);

return JSON.toJSONString(items);

}

}

4.发送消息通用类

public class RobotClient {

HttpClient httpclient = HttpClients.createDefault();

public SendResult send(String webhook, TextMessage message) throws IOException {

HttpPost httppost = new HttpPost(webhook);

httppost.addHeader("Content-Type", "application/json; charset=utf-8");

StringEntity se = new StringEntity(message.toJsonString(), "utf-8");

httppost.setEntity(se);

SendResult sendResult = new SendResult();

HttpResponse response = httpclient.execute(httppost);

if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

String result = EntityUtils.toString(response.getEntity());

JSONObject obj = JSONObject.parseObject(result);

Integer errcode = obj.getInteger("errcode");

sendResult.setErrorCode(errcode);

sendResult.setErrorMsg(obj.getString("errmsg"));

sendResult.setIsSuccess(errcode.equals(0));

}

return sendResult;

}

}

5.发送文本消息类

@Slf4j

public class SendTextMessage {

//机器人消息token

public static String WEBHOOK_TOKEN = "https://oapi.dingtalk.com/robot/send?access_token=xxx";

private static RobotClient robot = new RobotClient();

/**

* 发送普通文本消息

*

* @param message

* @return

*/

public static SendResult send(String message) {

TextMessage textMessage = new TextMessage(message);

SendResult sendResult = null;

try {

sendResult = robot.send(WEBHOOK_TOKEN, textMessage);

} catch (Exception e) {

log.error("===> send robot message error:", sendResult);

}

return sendResult;

}

/**

* 发送文本消息 可以@部分人

*

* @param message

* @param atMobiles 要@人的电话号码 ArrayList

* @return

*/

public static SendResult sendWithAt(String message, ArrayList atMobiles) {

TextMessage textMessage = new TextMessage(message);

SendResult sendResult = null;

textMessage.setAtMobiles(atMobiles);

try {

sendResult = robot.send(WEBHOOK_TOKEN, textMessage);

} catch (Exception e) {

log.error("===> send robot message atPeople error:", sendResult);

}

return sendResult;

}

/**

* 发送文本消息 并@所有人

*

* @param message

* @return

*/

public static SendResult sendWithAtAll(String message) {

TextMessage textMessage = new TextMessage(message);

SendResult sendResult = null;

textMessage.setIsAtAll(true);

try {

sendResult = robot.send(WEBHOOK_TOKEN, textMessage);

} catch (Exception e) {

log.error("===> send robot message atAll error:", sendResult);

}

return sendResult;

}

}

你可能感兴趣的:(java如何发送ding消息)