1.钉钉官方sdk未推送至maven仓库,如果自己要应用,得自己加如项目或私仓,会增加维护成本,但平时我们只要用推送功能就行,特写如下工具类,有需要可直接拿去用。
2.springboot启动类注入restTemplate模板工具类
@Bean
public RestTemplate restTemplate(){
RestTemplate restTemplate = new RestTemplate();
return restTemplate;
}
此时使用restTemplate接口可能抛转换异常,此时加上如下代码
public class WxMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
public WxMappingJackson2HttpMessageConverter(){
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(new MediaType("text", "plain", Charset.forName("UTF-8")));
mediaTypes.add(new MediaType("*", "json", Charset.forName("UTF-8")));
mediaTypes.add(MediaType.TEXT_PLAIN);
mediaTypes.add(MediaType.TEXT_HTML); //加入text/html类型的支持
setSupportedMediaTypes(mediaTypes);// tag6
}
}
@Bean
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate(simpleClientHttpRequestFactory());
//这个地方需要配置消息转换器,不然收到消息后转换会出现异常
restTemplate.getMessageConverters().add(new WxMappingJackson2HttpMessageConverter());
return restTemplate;
}
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.Map;
/**
* @author lyr
*/
@Component
public class DingDingUtil {
@Autowired
RestTemplate restTemplate;
/**
* 发送消息
* @param content
*/
public void sendMessage(String content) {
DingModel dingModel = new DingModel();
dingModel.setMsgtype("text");
Map<String, Object> map = new HashMap<>();
map.put("content",content);
dingModel.setText(map);
HttpEntity<DingModel> httpEntity= new HttpEntity<>(dingModel);
restTemplate.exchange("钉钉地址", HttpMethod.POST,httpEntity,Result.class);
}
}
@Data
class DingModel{
private String msgtype;
private Map<String,Object> text;
}
@Data
class Result {
private Integer code;
private String message;
private Object data;
}
3.要用的地方注入调用即可