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

在企业开发中,经常会碰到一些消息要及时推送到企业员工的手中。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

文采不好,请多包涵

fc5a7b42cce689077620aa0b1185d78c.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二维码的纠错码原理及如何纠错(2)

下面进一步介绍二维码纠错相关的编码矩阵 1 范德蒙德&#xff08;Vandermonde&#xff09;矩阵 1.1 定义及特性 法国数学家 Alexandre-Thophile Vandermonde 在十八世纪提出了行列式的概念, 用来解决线性方程组问题, 其中一个关键是范德蒙德(Vandermonde) 矩阵, Vandermonde…

NCCIP会议笔记

华南理工大学蔡毅&#xff1a;多智能体通信&#xff0c;识别边界。是否可以用于鼾声识别 天津大学张鹏教授 哈尔滨工业大学 HFUT&#xff1a;俞奎 张长青

计算机创新课,计算机教学课程模式与创新论文

计算机教学课程模式与创新论文摘要&#xff1a;作为大学生通识教育的重要组成部分&#xff0c;计算机基础课程是提高学生信息素养的关键途径。随着互联网技术的不断发展&#xff0c;大学计算机课程教学面临诸多新的挑战&#xff0c;因此需要创新、改革目前的教学模式&#xff0…

New directions in automated traffic analysis论文解读

1 论文主要idea 完整性&#xff1a;没有进行特征提取&#xff0c;保留原始数据包&#xff1b;固定大小&#xff1a;对不同类型的数据包进行统一格式编码&#xff0c;使得编码后的向量大小一致&#xff08;见图3&#xff09;将一些与目标任务不一致的字段去掉&#xff0c;如操作…

计算机找不到wf连接,笔记本wifi功能消失了 电脑wifi连接没了 电脑的wifi不见了...

笔记本wifi功能消失了 电脑wifi连接没了 电脑的wifi不见了2019-11-08 11:14:40 来源&#xff1a;网络扫码可以&#xff1a;1.在手机上浏览2.分享给微信好友或朋友圈解决方法&#xff1a;1、鼠标右键单击电脑桌面右下方的文件夹图标。2、进入文件夹后&#xff0c;在左边列表里&…

计算机二级考试都怎么考,计算机二级都考什么 怎么考

满意答案luluthe...2013.08.26采纳率&#xff1a;45% 等级&#xff1a;11已帮助&#xff1a;8894人关于二级考试科目&#xff1a;与去年相同&#xff0c;二级一共七个科目。二级科目分成两类&#xff0c;一类是语 言程序设计(C、C、Java、Visual Basic、Delphi)&#xff0c;…

计算机c盘丢失,电脑C盘丢失的视频文件怎么恢复?方法讲解,轻松搞定

电脑C盘丢失的视频文件怎么恢复&#xff1f;在日常的工作以及生活当中&#xff0c;有很多的传统媒体文件充斥着。例如&#xff1a;闲暇时&#xff0c;会找一些直播视频来放松自己。工作中&#xff0c;会找一些网络课程来提升自己。但是&#xff0c;在此过程中也会因为一些失误&…

人脸识别研究任务及开源项目调研

0 任务 人脸识别流程包括人脸检测、人脸对齐、人脸识别等子任务。 图1 一些部分遮挡的人脸样本。(a) LFW数据库中部分遮挡的人脸样本。(b)AR数据库部分遮挡的人脸样本。人脸识别具有重要的学术价值&#xff0c;人脸是一类相当复杂的细节变化的自然结构目标&#xff0c;此类目…

双路服务器单路运行,单路还是双路?看需求选择_机箱电源评测-中关村在线

电源的介绍里面&#xff0c;经常会看到“单路12V输出”或者“双路12V输出”的字样。那么单路12V输出和双路12V输出有什么区别呢&#xff1f;单路12V输出有着什么样的优势&#xff0c;而双路12V又有着什么样的优势呢&#xff1f;接下来简单分析一下。单路输出电源的12V输出主要是…

计算机常用控温算法,常用温度控制方法原理 -解决方案-华强电子网

常用PID调节器/温控仪控制算法包括常规PID、模糊控制、神经网络、Fuzzy-PID、神经网络PID、模糊神经网络、遗传PID及广义预测等算法。常规PID控制易于建立线性温度控制系统被控对象模型&#xff1b;模糊控制基于规则库&#xff0c;并以绝对或增量形式给出控制决策&#xff1b;神…

我的世界服务器修改数据,我的世界常用指令大全,轻松调整服务器数值状态

在我的世界服务器中能够经过输送指令来微调服务器的一些数值状态&#xff0c;此次就为各位提供我的世界常用指令大全&#xff0c;毕竟我的世界作为一款出色的沙盒游戏&#xff0c;不止是因为原版内容和mod的增光填色&#xff0c;也离不开指令的辅助。/say [语句]让服务器发每段…

二维码的目标定位

1 总体思路 第一步&#xff0c;寻找二维码的三个角的定位角点&#xff0c;需要对图片进行平滑滤波&#xff0c;二值化&#xff0c;寻找轮廓&#xff0c;筛选轮廓中有两个子轮廓的特征&#xff0c;从筛选后的轮廓中找到面积最接近的3个即是二维码的定位角点。 第二步&#xff1…

mac 上传ftp服务器文件夹权限,mac 访问 ftp服务器文件夹权限

mac 访问 ftp服务器文件夹权限 内容精选换一换在“云服务器列表”页&#xff0c;单击下拉按钮展开会话列表&#xff0c;查看会话连接状态&#xff0c;出现“关闭应用失败”的异常。将鼠标移动至“关闭应用失败”处&#xff0c;查看具体的失败原因&#xff0c;并根据表1进行故障…

以毒攻毒Fight Fire with Fire: Towards Robust Recommender Systems via Adversarial Poisoning Training论文解读

1 摘要 最近的研究表明&#xff0c;推荐系统是脆弱的&#xff0c;攻击者很容易将精心设计的恶意配置文件注入系统&#xff0c;从而导致有偏见的推荐。我们不能否认这些数据的合理性&#xff0c;因此建立一个强大的推荐系统势在必行。对抗性训练已被广泛研究以获得可靠的建议。…

redis延迟队列 实现_灵感来袭,基于Redis的分布式延迟队列

一、延迟队列延迟队列&#xff0c;也就是一定时间之后将消息体放入队列&#xff0c;然后消费者才能正常消费。比如1分钟之后发送短信&#xff0c;发送邮件&#xff0c;检测数据状态等。二、Redisson Delayed Queue如果你项目中使用了redisson&#xff0c;那么恭喜你&#xff0c…

opencv2 取二进制数据_百亿数据量下,掌握这些Redis技巧你就能Hold全场

程序猿DD一、Redis封装架构讲解实际上NewLife.Redis是一个完整的Redis协议功能的实现&#xff0c;但是Redis的核心功能并没有在这里面&#xff0c;而是在NewLife.Core里面。这里可以打开看一下&#xff0c;NewLife.Core里面有一个NewLife.Caching的命名空间&#xff0c;里面有一…

MV-LDL论文修改20211115(B-Y Rong)

1、摘要 8-10句&#xff0c;每句话15-25个单词 &#xff08;1&#xff09;我们的研究领域。。。 &#xff08;2&#xff09;已有的工作。。。 &#xff08;3&#xff09;有什么缺点。。。&#xff08;motivation&#xff09; &#xff08;4&#xff09;In this paper … &#…

Data Poisoning Attacks to Deep Learning Based Recommender Systems论文解读

1 摘要 在这项工作中&#xff0c;作者对基于深度学习的推荐系统的数据中毒攻击进行了首次系统研究。攻击者的目标是操纵推荐系统&#xff0c;以便向许多用户推荐攻击者选择的目标项目。为了实现这一目标&#xff0c;作者将精心设计的评分注入到推荐系统中的假用户。具体来说&a…

黑马商城项目源代码_Python学习路线图--Python框架与项目

Python学习路线图的Python框架部分主要有Django框架和Flask框架&#xff0c;学完这一部分就可以去找Web全栈工程师的工作了&#xff0c;独立开发前端和后端业务。Python学习路线图的Django框架部分需要掌握Web主流框架-Django的使用&#xff1b;可根据Web框架设计&#xff0c;开…

Membership Inference Attacks Against Recommender Systems论文解读

0 摘要 推荐系统通常针对高度敏感的用户数据进行训练&#xff0c;因此推荐系统潜在的数据泄露可能会导致严重的隐私问题。 本文首次尝试通过成员推理的角度来量化推荐系统的隐私泄漏。 与针对机器学习分类器的传统成员推理相比&#xff0c;本文的攻击面临两个主要差异。 首先&…