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 {@Beanpublic 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 {@Autowiredprivate RestTemplate http;@GetMapping("/wechat")public MsgResult SendToWechat() {//企业微信地址String baseUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken";//企业IDString corpid = "ww3e993d7d77b48bfe";//企业密匙String corpsecret = "063X5BODdWSq6LzyUSz22EEOpgVTTwOyaSK3GUI9dik";//代理商IDint 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();}
}