1.企业微信申请
企业微信官方地址:https://work.weixin.qq.com/
2.企业微信给用户发消息
申请企业微信以后,我们可以用管理员登录企业微信后台。
2.1.登录企业微信后台管理
2.2.创建应用
在应用管理模块,创建一个应用
2.3.发送消息
进入我们创建的引用,点击发送消息
点击发送后,登录企业微信客户端,即可查看到我们的企业微信消息。
3.集成企业微信发送消息
上述操作中,我们是通过系统的后台管理界面进行发送消息的,现在我们来开始用java的方式来集成企业微信。这里氛围两种,一种是Spring环境下的集成,一种是非Sping环境下的集成。
3.1.Spring项目集成企业微信
这里我们以SpringBoot项目为例子:
3.1.1.创建一个SpringBoot项目
代码结构如下
3.1.2.配置RestTemplate
@SpringBootConfiguration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
3.1.2.创建报文映射实体类
3.1.2.1.创建TokenResult
该类用来映射请求token返回json报文
public class TokenResult {
private String errcode;
private String errmsg;
private String access_token;
private String expires_in;
//get 、set略,
}
3.1.2.2.创建MsgRequestDTO
该类是发送企业消息报文映射的实体类
public class MsgRequestDTO{
/**
* 成员账号
*/
private String touser;
/**
* 消息类型
*/
private String msgtype;
/**
* 企业应用的agentID
*/
private int agentid;
/**
* 传送的消息
*/
private Map<String, String> text;
//省略get set
}
3.1.2.3.创建MsgResult
该类是映射发送消息返回报文映射的实体类
public class MsgResult {
private String errcode;
private String errmsg;
private String invaliduser;
//省略get set
}
3.1.3.发送消息到企业微信用户
这里使用restTemplate来进行请求
首先我们需要用企业ID和企业密匙,获取到token
然后组装请求报文发送消息
@RestController
@RequestMapping("/sendMsg")
public class SendMsgControlelr {
@Autowired
private RestTemplate http;
@GetMapping("/wechat")
public MsgResult SendToWechat() {
//企业微信地址
String baseUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken";
//企业ID
String corpid = "ww3e993d7d77b48bfe";
//企业密匙
String corpsecret = "063X5BODdWSq6LzyUSz22EEOpgVTTwOyaSK3GUI9dik";
//代理商ID
int agentId = 1000002;
String urlToken = baseUrl+"?corpid="+corpid+"&corpsecret="+corpsecret;
String token = http.getForEntity(urlToken, TokenResult.class).getBody().getAccess_token();
String msgUrl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+token;
MsgRequestDTO requestData = new MsgRequestDTO();
requestData.setAgentid(agentId);
requestData.setTouser("HuTao");
requestData.setMsgtype("text");
Map<String,String> text = new HashMap<>();
text.put("content", "aaaaaaaaaaaaaaaaaa");
requestData.setText(text);
ResponseEntity<MsgResult> postForEntity = http.postForEntity(msgUrl, requestData, MsgResult.class);
return postForEntity.getBody();
}
}