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

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

北师大计算机组成原理离线作业,北师大网络教育 离线作业 计算机组成原理(一、二、三)...

《计算机组成原理》作业(一)一、CPU&#xff1a;Central Processing Unit 中央处理单元 执行存放在主存储器中的程序即机器指令.CPU是由控制器和运算器.PC&#xff1a;Personal Computer 个人电脑 能独立运行、完成特定功能的个人计算机 IR&#xff1a;Immediate Rendering 直接…

3dsmax导出html,3dsmax导出gltf格式插件

【实例简介】3dsmax导出gltf格式插件&#xff0c;里面包括插件&#xff0c;插件使用说明&#xff0c;插件功能介绍&#xff1b;【实例截图】【核心代码】3dsmx_to_gltf格式插件└── 3dsMax to gltf 2├── 3ds Max│ ├── CHANGELOG.md│ ├── Max2Babylon│ │ …

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;如操作…

拉力测试软件界面,电脑拉力机/电脑控制拉力试验机软件操作界面与功能

1、电脑控制软件能实现自动读取抗拉强度、屈服强度、断裂强度、弹性模量、延伸率等检测数据&#xff0c;公式编辑能自动计算试验过程中任一指定点的力、应力、位移、变形等数据结果。对试验过程的控制和数据处理符合相应金属材料与非金属材料国家标准的要求。2、 控制方式&…

NSA-LDL论文修改建议20211026BRT

repair --> 增强&#xff0c;丰富&#xff0c; The kkk-nearest neighbor algorithm enhances the feature representation of the target sample by obtaining neighbors. Most of them take account of label correlation which plays an importance role in LDL. –>…

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

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

SWPU第一届APP程序设计大赛筹备工作

1 竞赛网址 http://main.corntree.net/champion/index 2. 选题讨论 关于竞赛的题目&#xff0c;目前几个想法&#xff1a; 1、私密相册 2、打印机 3、贴图&#xff08;制作表情包&#xff09; 4、聊天截图拼接并抹掉头像 5、手机加速 6、浏览器 7、 IOS Widgets 游戏相关&am…

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

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

MSN-LDL论文修改20211027RBY

1, 610000 –> 610500 2, Label distribution learning(LDL) –>Label distribution learning (LDL) 3, Howerver, existing LDL algorithms usually extract sample features from a single view, and the features extracted from a single view often cannot comple…

计算机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…

乌班图服务器系统升级,将Ubuntu服务器升级至14.04LTS版本的方法

Ubuntu 14.04 LTS 已经出来了&#xff0c;我要如何(怎样)升级到Ubuntu 14.04 LTS版本呢&#xff1f;我们可以从镜像或者主要发型版本来升级到最新版本1.备份Ubuntu服务器上的重要数据做好备份。因为文章大部分操作要通过root执行&#xff0c;可能会造成无法挽回的损失。输入下面…

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

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