介绍:
本文将讨论如何使用Java发送钉钉消息。钉钉是由阿里巴巴开发的流行的沟通和协作平台,用户可以通过该平台发送消息、进行视频通话和分享文件。
前提条件:
在开始之前,请确保你具备以下条件:
钉钉应用的App Key
钉钉应用的App Secret
接收者的用户ID
步骤1:获取Access Token
//登录获取token,这里可以存数据库判断时间是否过期
DingTalkClient clientToken = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
OapiGettokenRequest reqToken = new OapiGettokenRequest();
//应用的key
reqToken.setAppkey("xxxx");
//应用的秘钥
reqToken.setAppsecret("xxxxxx");
reqToken.setHttpMethod("GET");
OapiGettokenResponse rspToken = clientToken.execute(reqToken);
System.out.println(rspToken.getBody());
Map<String, Object> tranMap = mapStringToMap(rspToken.getBody());
步骤2:发送消息
一旦获得了Access Token,你可以使用它向指定的接收者发送消息。
//判断token是否成功返回
if ("ok".equals(tranMap.get("errmsg")))
{
//设置token
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
OapiMessageCorpconversationAsyncsendV2Request req = new OapiMessageCorpconversationAsyncsendV2Request();
req.setAgentId(2721758891L);
//目前是xx和xxUSERID,可以从数据库配置发送人的userid
req.setUseridList("5425296519689947,49403856461219104");
req.setToAllUser(false);
OapiMessageCorpconversationAsyncsendV2Request.Msg obj1 = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
obj1.setMsgtype("text");
OapiMessageCorpconversationAsyncsendV2Request.Text obj2 = new OapiMessageCorpconversationAsyncsendV2Request.Text();
obj2.setContent("WMS系统日志报错信息:2023-08-28 15:48:35 474\t{uuid:748569659262894080,bizData:{\"Result\":1,\"Message\":null,\"Details\":[{\"Result\":0,\"Message\":\"值不能为 null。\\r\\n参数名: key\",\"LocationId\":null,\"LightColor\":96,\"Twinkle\":0,\"IsLocked\":0,\"IsMustCollect\":1,\"Quantity\":0,\"SubText\":null,\"BatchCode\":null,\"Name\":null,\"R1\":null,\"R2\":null,\"R3\":null,\"SubTitle\":null,\"Title\":null,\"Unit\":null,\"RelateToTower\":true,\"LeftDown\":null}]}}");
obj1.setText(obj2);
req.setMsg(obj1);
OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(req, tranMap.get("access_token").toString());
System.out.println(rsp.getBody());
}
} catch (ApiException e) {
e.printStackTrace();
}
工具方法:
public static Map<String,Object> mapStringToMap(String str){
String strNew=str.replace("{","").replace("}","").replace("\"","");
//根据逗号截取字符串数组
String[] str1 = strNew.split(",");
//创建Map对象
Map<String,Object> map = new HashMap<>();
//循环加入map集合
for (int i = 0; i < str1.length; i++) {
//根据":"截取字符串数组
String[] str2 = str1[i].split(":");
//str2[0]为KEY,str2[1]为值
map.put(str2[0],str2[1]);
}
return map;
}
结论:
本文讲解了如何使用Java发送钉钉消息。通过遵循所述步骤,你可以将钉钉集成到你的Java应用程序中,并自动发送消息给团队成员或客户。