日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

企业微信加密消息体_用企业微信小程序发送消息

發(fā)布時間:2024/8/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 企业微信加密消息体_用企业微信小程序发送消息 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在企業(yè)開發(fā)中,經(jīng)常會碰到一些消息要及時推送到企業(yè)員工的手中。so 下面來說怎么向企業(yè)微信中的員工發(fā)消息。

本人只是記錄下開發(fā)過程,詳細參考https://work.weixin.qq.com/api/

1.準備

注冊企業(yè)微信公司

獲取企業(yè)ID

新開企業(yè)微信應(yīng)用

獲取應(yīng)用的Agentid,Secret

參考:https://work.weixin.qq.com/api/doc/90000/90135/90665

2.開發(fā)

應(yīng)用支持推送文本、圖片、視頻、文件、圖文等類型。以下以推送文本為例。

1)獲取access_token

請求方式:GET(HTTPS)
請求地址: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小時左右。每天獲取access_token的次數(shù)也是有限的(大概200次左右)

所以下面可以寫個公共類

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對象,并保存 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;//過期時間 時間戳 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; } /** * 判斷當前token是否過期 * @return */ public Boolean isExpired(){ return System.currentTimeMillis()>expiresTime; }}

以上的代碼本人認為是比較麻煩的,so 全部記錄下來了

2)發(fā)送消息正文

請求方式:POST(HTTPS)

請求地址:https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN

ACCESS_TOKEN是上面GET請求得到的

請求示例

{ "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ā)送的人,可多個

msgtype:類型

content:主題內(nèi)容

......

其他不是必填字段,可以自己去看官方文檔吧。

返回示例

{ "errcode" : 0, "errmsg" : "ok", "invaliduser" : "userid1|userid2", "invalidparty" : "partyid1|partyid2", "invalidtag": "tagid1|tagid2" }

errcode:0 代表發(fā)送成功了

有些地方不是很詳細,作為自己以后工作參考用。。。

還是建議大家多去官網(wǎng)看看API

文采不好,請多包涵

總結(jié)

以上是生活随笔為你收集整理的企业微信加密消息体_用企业微信小程序发送消息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。