企业微信加密消息体_用企业微信小程序发送消息
在企业开发中,经常会碰到一些消息要及时推送到企业员工的手中。so 下面来说怎么向企业微信中的员工发消息。
本人只是记录下开发过程,详细参考https://work.weixin.qq.com/api/
1.准备
注册企业微信公司
获取企业ID
新开企业微信应用
获取应用的Agentid,Secret
参考:https://work.weixin.qq.com/api/doc/90000/90135/90665
2.开发
应用支持推送文本、图片、视频、文件、图文等类型。以下以推送文本为例。
1)获取access_token
请求方式:GET(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
ID :企业id
SECRET:应用的凭证密钥(Secret)
返回结果如下,我们需要记录access_token
{ "errcode": 0, "errmsg": "ok", "access_token": "3YY3ZRP-nl3s25idin-Qay5bOL5503uzqz45OKFtd7R1E8AE40I3paB8v7wzeWucH8nS9y-95eJzivzEbRKHgBurmAwPZ6AkU4mDuiXSSl5S8v6Keal3_MRF5BxheLRfEThR5LFBFOE9PZluB4Z_JvdRUluNfWKKCqMUL0xwAnJ1bs2OuDVsdLeMiO5hQcl94diHsENz2O1T3_C5WRvp1w", "expires_in": 7200}
注:access_token的有效期大概2小时左右。每天获取access_token的次数也是有限的(大概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"); //创建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)发送消息正文
请求方式: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" : "第一次发送成功啦!" }, "safe":0, "enable_id_trans": 0, "enable_duplicate_check": 0}
touser:发送的人,可多个
msgtype:类型
content:主题内容
......
其他不是必填字段,可以自己去看官方文档吧。
返回示例
{ "errcode" : 0, "errmsg" : "ok", "invaliduser" : "userid1|userid2", "invalidparty" : "partyid1|partyid2", "invalidtag": "tagid1|tagid2" }
errcode:0 代表发送成功了
有些地方不是很详细,作为自己以后工作参考用。。。
还是建议大家多去官网看看API
文采不好,请多包涵
企业微信加密消息体_用企业微信小程序发送消息相关推荐
- axure小程序模板_公众号和小程序模板消息
前言 今天和大家简单聊聊微信公众号和微信小程序的模板消息机制,大家在做微信小程序或者微信公众号消息通知的时候可以参考. 微信小程序 订阅消息 推送位置:服务通知 跳转能力:可以跳转到小程序页面 解释: ...
- java微信小程序发送消息
首先参考文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subsc ...
- 小程序发送消息订阅报错{“errcode“:40003,“errmsg“:“invalid openid rid: 641bece8-5b5ed5f9-7c0705a8“}
检查了accessToken跟openid 都是对的 为什么就是会报错呢??? 我们做的项目有两个小程序端 一个是患者端 一个是医护端 在患者端接口给医护端发送订阅消息 结果一直拿着患者端的open ...
- 小程序统一服务消息_微信团队发布小程序模板消息能力调整通知:小程序订阅消息接口正式上线...
10月13日,微信团队发布了小程序模板消息能力调整通知.微信团队表示,此前的模板消息接口将停止使用,小程序订阅消息接口正式上线.据了解,新上线的小程序订阅消息,同时支持一次性和长期性订阅消息,用户可以 ...
- 微信小程序订阅消息推送(附带后台java代码)
官方文档: 小程序前端:点击进入 小程序服务端:点击进入 一,代码实现(后端) ①定义实体类 package com.saic.fin.system.sendInfo;import lombok.Da ...
- 有赞“小程序订阅消息”功能上线 支持商家主动推送「活动通知」
12月7日消息,有赞微商城"小程序订阅消息"功能正式上线,设置领券.订单.签到等多个场景的授权,并支持商家主动推送营销活动类「活动通知」给消费者.目前,此功能已支持食品.服饰鞋包. ...
- 企业微信加密消息体_加解密方案的详细说明
关于加解密方案的详细说明 术语及说明 开启回调模式时,有以下术语需要了解: 1.msg_signature是签名,用于验证调用者的合法性.具体算法见以下'消息体签名'章节 2.EncodingAESK ...
- 企业微信 消息推送使用(新建应用、发送消息)
1 新建应用 第一步,登录企业微信管理端. https://work.weixin.qq.com/nl/sem/registe?s=c&from=1014309098&bd_vid=7 ...
- php+实现群发微信模板消息_使用php实现微信小程序发送模板消息(附代码)
本篇文章给大家带来的内容是关于使用php实现微信小程序发送模板消息(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 本章将会简单说一下微信小程序的模板消息发送,相对来说比较简 ...
最新文章
- Python使用matplotlib可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组在一起、并根据点的相似性将它们组织成树状图链接起来(Dendrogram)
- 普通平键的主要尺寸有_快来收下这份家装尺寸表,衣柜不再鸡肋
- 6001.Cacti监控华为S8512核心交换机多块板卡的CPU和内存
- Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au...
- linux关于禁用硬件xinput使用
- xmppframework for iOS client (一) XMPPFramework环境配置
- 2018--Linux命令总结整理复习版
- mysql 按月统计代码_SQL对数据进行按月统计或对数据进行按星期统计的实例代码...
- JS制作常见通知信息(适用于手机通知信息和电脑通知信息)
- [Leedcode][JAVA][第289题][生命游戏]
- 为什么Siri总是像个智障?智能助手背后的技术到底有多难?
- 【转载】关于RabbitMQ的高可用性
- Gradle初级使用教程
- Oracle 锁表问题查询处理
- 与合作伙伴合作,如何正确的“吵架”
- 金融工程中的蒙特卡罗方法
- bdd 启动 data processing进程报错 Can't locate LWP.pm in @INC
- 中国染料医用激光器行业市场供需与战略研究报告
- 使用mycat实现分库分表
- Java基础练习题2
热门文章
- 进入opencv内部函数调试
- 图像的旋转和尺度缩放在对数极坐标系下的研究
- Redis系列三、redis的五种数据结构和相关指令之Hash
- mac php errorlog,Mac下使用php的error_log()函数发送邮件
- java中final是修饰符么_Java final修饰符详解
- mysql 命令 _Mysql常用命令行大全
- 数学C语言编程,数学规划 (最速下降法,c语言编程).doc
- linux unix域socket_python3从零学习-5.8.1、socket—底层网络接口
- js br不生效_前端标注工具-AILabel.js
- 前端做后台管理系统有前途吗_关于后台管理系统前端项目的思考