参考官方文档:https://developers.dingtalk.com/document/app/download-the-server-side-sdk
jar包下载
/**
* @param url 钉钉webhook
* @param message 提示消息
*/
public static void sendPost(String url, String message) {
DingTalkClient client = new DefaultDingTalkClient(url);
OapiRobotSendRequest request = new OapiRobotSendRequest();
request.setMsgtype("text"); //3种,具体见官方文档
OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
text.setContent(message);
request.setText(text);
try {
OapiRobotSendResponse response = client.execute(request);
System.out.print(response);
} catch (ApiException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* 外部接口调用
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@CrossOrigin(origins = "*", maxAge = 3600)
@ResponseBody
@RequestMapping(value = "dingNoticeTest", produces = "application/json;charset=UTF-8", method = {
RequestMethod.POST })
public void dingNoticeTest(HttpServletRequest request, HttpServletResponse response,@RequestBody String param)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
JSONObject js= JSONObject.fromObject(param);
String content = "";
if(js.has("content")){
content = js.getString("content").replaceAll(" ", "");
}
JSONObject json = new JSONObject();
try {
//钉钉机器人
sendPost(url,content);
json.put("status", "success");
} catch (Exception e) {
e.printStackTrace();
json.put("status", "failed");
}
PrintWriter pw = response.getWriter();
String callback = request.getParameter("callback");
if (null != callback && callback.length() > 0) {
pw.print(callback + "(" + json.toString() + ")");
} else {
pw.print(json.toString());
}
pw.close();
}