企业微信加密消息体_用企业微信小程序发送消息
在企業(yè)開(kāi)發(fā)中,經(jīng)常會(huì)碰到一些消息要及時(shí)推送到企業(yè)員工的手中。so 下面來(lái)說(shuō)怎么向企業(yè)微信中的員工發(fā)消息。
本人只是記錄下開(kāi)發(fā)過(guò)程,詳細(xì)參考https://work.weixin.qq.com/api/
1.準(zhǔn)備
注冊(cè)企業(yè)微信公司
獲取企業(yè)ID
新開(kāi)企業(yè)微信應(yīng)用
獲取應(yīng)用的Agentid,Secret
參考:https://work.weixin.qq.com/api/doc/90000/90135/90665
2.開(kāi)發(fā)
應(yīng)用支持推送文本、圖片、視頻、文件、圖文等類(lèi)型。以下以推送文本為例。
1)獲取access_token
請(qǐng)求方式:GET(HTTPS)
請(qǐng)求地址:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
ID :企業(yè)id
SECRET:應(yīng)用的憑證密鑰(Secret)
返回結(jié)果如下,我們需要記錄access_token
{ "errcode": 0, "errmsg": "ok", "access_token": "3YY3ZRP-nl3s25idin-Qay5bOL5503uzqz45OKFtd7R1E8AE40I3paB8v7wzeWucH8nS9y-95eJzivzEbRKHgBurmAwPZ6AkU4mDuiXSSl5S8v6Keal3_MRF5BxheLRfEThR5LFBFOE9PZluB4Z_JvdRUluNfWKKCqMUL0xwAnJ1bs2OuDVsdLeMiO5hQcl94diHsENz2O1T3_C5WRvp1w", "expires_in": 7200}注:access_token的有效期大概2小時(shí)左右。每天獲取access_token的次數(shù)也是有限的(大概200次左右)
所以下面可以寫(xiě)個(gè)公共類(lèi)
WechatService.java
@Servicepublic class WechatService{ private static org.apache.log4j.Logger logger = Logger.getLogger(WechatService.class); RestTemplate client = new RestTemplate(); private RestTemplate restTemplate = RestTemplateUtil.getInstance(); private static AccessToken at ; @Value("${appId}") private String appId; @Value("${appSecret}") private String appSecret; //向外暴露獲取accessToken public String getAccessToken() { if(at==null||at.isExpired()){ getToken(); } if(at!=null){ return at.getAccessToken(); } return null; } //私有 private void getToken(){ String accessTokenUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+appId+ "&corpsecret="+appSecret; logger.debug("URL for getting accessToken accessTokenUrl="+accessTokenUrl); Map rtnMap = restTemplate.getForObject(accessTokenUrl, Map.class); if(rtnMap!=null){ Integer errcode = (Integer)rtnMap.get("errcode"); logger.debug("GETToken errcode:"+errcode); if(errcode==0){ String accessToken = (String)rtnMap.get("access_token"); logger.debug("accessToken:"+accessToken); Integer expiresIn = (Integer)rtnMap.get("expires_in"); //創(chuàng)建token對(duì)象,并保存 at = new AccessToken(accessToken, expiresIn); } } }}RestTemplateUtil.java
public class RestTemplateUtil { public static RestTemplate getInstance() { RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters().add(new WxConverter()); return restTemplate; }}WxConverter.java
public class WxConverter extends MappingJackson2HttpMessageConverter { public WxConverter(){ List mediaTypes = new ArrayList<>(); mediaTypes.add(MediaType.TEXT_PLAIN); mediaTypes.add(MediaType.TEXT_HTML); setSupportedMediaTypes(mediaTypes); }}AccessToken.java
public class AccessToken { private String accessToken;//token private Long expiresTime;//過(guò)期時(shí)間 時(shí)間戳 public String getAccessToken() { return accessToken; } public void setAccessToken(String accessToken) { this.accessToken = accessToken; } public Long getExpiresTime() { return expiresTime; } public void setExpiresTime(Long expiresTime) { this.expiresTime = expiresTime; } public AccessToken(String accessToken,Integer expiresIn){ super(); this.accessToken = accessToken; this.expiresTime = System.currentTimeMillis()+expiresIn*1000; } /** * 判斷當(dāng)前token是否過(guò)期 * @return */ public Boolean isExpired(){ return System.currentTimeMillis()>expiresTime; }}以上的代碼本人認(rèn)為是比較麻煩的,so 全部記錄下來(lái)了
2)發(fā)送消息正文
請(qǐng)求方式:POST(HTTPS)
請(qǐng)求地址:https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
ACCESS_TOKEN是上面GET請(qǐng)求得到的
請(qǐng)求示例
{ "touser" : "UserID1|UserID2|UserID3", "toparty" : "PartyID1|PartyID2", "totag" : "TagID1 | TagID2", "msgtype" : "text", "agentid" : 1, "text" : { "content" : "第一次發(fā)送成功啦!" }, "safe":0, "enable_id_trans": 0, "enable_duplicate_check": 0}touser:發(fā)送的人,可多個(gè)
msgtype:類(lèi)型
content:主題內(nèi)容
......
其他不是必填字段,可以自己去看官方文檔吧。
返回示例
{ "errcode" : 0, "errmsg" : "ok", "invaliduser" : "userid1|userid2", "invalidparty" : "partyid1|partyid2", "invalidtag": "tagid1|tagid2" }errcode:0 代表發(fā)送成功了
有些地方不是很詳細(xì),作為自己以后工作參考用。。。
還是建議大家多去官網(wǎng)看看API
文采不好,請(qǐng)多包涵
總結(jié)
以上是生活随笔為你收集整理的企业微信加密消息体_用企业微信小程序发送消息的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 恭喜!清华大学,再添院士!
- 下一篇: 距离,原来还有这么多类