Java企业微信对接

news/2024/5/2 7:17:44/文章来源:https://blog.csdn.net/u013254183/article/details/127184900


最近项目中要对接企业微信,实现通讯录数据同步,即在企业端添加编辑删除用户,部门数据要同步到微信端,同时微信端添加编辑删除用户,部门数据要同步到企业端,实现数据同步功能,需要调用企业微信API和通讯录回调接口,下面就把对接过程中遇到的各种问题,各种坑记录下来分享给需要的同学

本博客属作者原创,未经允许禁止转载,请尊重原创!如有问题请联系QQ509961766

企业微信对接目录

Java企业微信对接(一)企业端同步到微信端
Java企业微信对接(二)微信端回调到企业端

开发前准备

wechat:# 企业Idappid: appidxxxxxxxxxxx# 查询用的API秘钥appsecret: appsecretxxxxxxxxxxxxx# 增删改用的API秘钥apisecret: apisecretxxxxxxxxxxxxxxxxx# 是否使用代理useProxy: false# 是否开启同步至企业微信enableToWeXin: false# 代理地址端口wechatProxy: 10.1.1.1# 代理地址端口wechatPort: 6666# 回调地址的tokencallback-token: tokenxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx# 回调地址的秘钥callback-aesKey: aesKeyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

appid获取方式登录企业微信-我的企业页面下面有企业ID就是
在这里插入图片描述

定义常量

	//添加用户接口private static final String HTTP_URL_CREATE_USER = "https://qyapi.weixin.qq.com/cgi-bin/user/create?access_token=";//修改用户接口private static final String HTTP_URL_UPDATE_USER = "https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token=";//删除用户接口private static final String HTTP_URL_DELETE_USER = "https://qyapi.weixin.qq.com/cgi-bin/user/batchdelete?access_token=";//添加部门接口private static final String HTTP_URL_CREATE_ORG = "https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token=";//编辑部门接口private static final String HTTP_URL_UPDATE_ORG = "https://qyapi.weixin.qq.com/cgi-bin/department/update?access_token=";//token redis keyprivate static final String WEIXIN_API_TOKEN = "token:weixin_api_token";

获取access_token

corpid就是上面配置项中的appid
apiSecret就是上面配置项中的apisecret
这个access_token 是用于 用户增删改,部门增删改时需要拼到url后面的参数

    /*** 获取微信AccessToken** @author: what*/private String getApiAccessToken(String corpid) {// 获取企业微信token请求地址拼接String requestUrl = YzyConstants.GET_WECOM_TOKEN_URL.replace("CORPID", corpid).replace("CORPSECRET", apiSecret);String accessToken = null;try {HttpGet httpget = new HttpGet(requestUrl);// 获得Http客户端CloseableHttpClient client = HttpClients.createDefault();// 企业微信返回值ResponseHandler<String> responseHandler = new BasicResponseHandler();if (useProxy) {//设置代理IP、端口HttpHost proxy = new HttpHost(wecomProxy, Integer.parseInt(wecomPort), "http");RequestConfig requestConfig= RequestConfig.custom().setProxy(proxy).build();httpget.setConfig(requestConfig);log.info("使用代理-{}:{},访问接口-{}", wecomProxy, wecomPort, requestUrl);}String response = client.execute(httpget, responseHandler);JSONObject jsonObject = JSONUtil.parseObj(response);// 记录日志:企业微信返回信息log.info("wecom token response:{}", jsonObject);// 返回结果示例:// {//        "errcode": 0,//        "errmsg": "ok",//        "access_token": "accesstoken000001",//        "expires_in": 7200// }Integer errCode = jsonObject.getInt(YzyConstants.ERR_CODE);String errMsg = jsonObject.getStr(YzyConstants.ERR_MSG);// 判断返回值是否正确if (ObjectUtil.isNotNull(errCode) && 0 != errCode) {throw new WechatException(errCode, errMsg);}accessToken = jsonObject.getStr("access_token");client.close();} catch (Exception e) {throw new WechatException(e.getMessage());}return accessToken;}

重要内容(通讯录回调)

在这里插入图片描述
首先需要登录企业微信管理工具中,打开通讯录回调,然后还需要加入ip可信名单,例如本机IP,生产环境,测试环境ip 都需要配置,然后点击设置接受事件服务器,这里的url必须是备案域名,不能使用公网ip,否则会失效,然后下面Token就是对应配置项callback-token,EncodingAESKey就是对应配置项callback-aesKey,好了通讯录回调就配置好了,后面直接上代码

在这里插入图片描述

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

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

相关文章

五款朴实无华却又能极大提升办公效率的软件

最近后台收到好多小伙伴的私信&#xff0c;今天继续推荐五款小工具&#xff0c;都是免费使用的&#xff0c;大家可以去试试看。 1.光追动画制作——Luxion KeyShot Luxion KeyShot是一款互动性的光线追踪与全域光渲染3D渲染与动画制作软件&#xff0c;内置丰富多样的材质&…

mybatis实战:三、mybatis多表查询的映射

依照上一期的继续 1.UserMapper.xml 除了直接对应基本数据类类型、表的实体类&#xff0c;还可能用到多表查询。 <select id"selectRolesByUserId" resultType"tk.mybatis.simple.model.SysRole">select r.id, r.role_name roleName, r.enabled, r…

Typora导出Word

1.Typora导出Word配置 1.访问GitHub&#xff1a; https://github.com/jgm/pandoc/releases/tag/2.11.3.2https://github.com/jgm/pandoc/releases/tag/2.11.3.2 2.下载对应的文件 3.到本地安装Typora目录下解压 4.配置环境变量 我的电脑–属性–高级系统设置–高级–环境变量…

Linux零基础入门(二)Linux基础命令

Linux零基础入门&#xff08;二&#xff09;Linux基础命令前言Linux基础命令一 Linux的目录结构1 Linux路径的描述方式二 Linux命令入门1 Linux命令基础格式2 ls命令3 HOME目录和工作目录4 ls命令的参数ls 命令的 -a选项ls命令的 -l选项ls命令选项的组合使用ls选项和参数的组合…

搭建Docker+SRS服务器实现推流拉流的效果

最初的一个想法&#xff0c;是针对当前的网络电视去的&#xff0c;很多网络电视买回家&#xff0c;还要充很多会员&#xff0c;甚至跌入连环坑。我想给妈妈买一台电视&#xff0c;想把我自己收集的电影电视剧做成一个影视库&#xff0c;通过搭建家庭影院服务器&#xff0c;然后…

Fiddler抓包工具是最强大最好用的 Web 调试工具之一

Fiddler是最强大最好用的Web调试工具之一&#xff0c;它能记录所有客户端和服务器的http和https请求&#xff0c;允许你监视&#xff0c;设置断点&#xff0c;甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说&#xff0c;都有很大的帮助。 目录 Fiddler的基本介绍 …

Java+JSP+MySQL基于SSM的医院挂号就诊系统-计算机毕业设计

项目介绍 随着计算机科技的快速发展&#xff0c;很多地方都实现了自动化管理&#xff0c;医院也不例外。在大多数医院&#xff0c;无论是挂号处&#xff0c;还是取药的窗口&#xff0c;都会看到有很长的队伍&#xff0c;很显然这样会让患者就医的过程中浪费太多的时间。其次&a…

Kamiya丨Kamiya艾美捷AREG酶联免疫吸附试验原理

Kamiya艾美捷AREG酶联免疫吸附试验预期用途&#xff1a; 该试剂盒是一种用于体外定量测量大鼠AREG的夹心酶免疫测定法血清、血浆和其他生物流体。仅供研究使用。不用于诊断程序。 存储&#xff1a; 所有试剂应按照小瓶上的标签保存。校准器、检测试剂A、检测试剂B和96孔带板应…

【正点原子FPGA连载】第二十四章 双路高速DA实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十四章 双路…

Linux 内存虚实内存映射

Linux 内存虚实内存映射TOC 以前关于虚拟地址和物理地址的学习只是在书本上&#xff0c;今天在实际的开发板上实践了一下 代码&#xff1a; #include <linux/kernel.h> #include <linux/init.h> #include <linux/module.h> #include <linux/sched.h #i…

H2N-Gly-Gly-βAla-COOH, 42538-53-4

用作多肽和蛋白质亚硝化的低分子模型化合物。cas编号(净):627-74-7。 编号: 200129中文名称: 三肽Gly-Gly-βAlaCAS号: 42538-53-4单字母: H2N-GG-βA-OH三字母: H2N-Gly-Gly-βAla-COOH氨基酸个数: 3分子式: C7H13N3O4平均分子量: 203.2精确分子量: 203.09等电点(PI): 6.11pH7…

百数低代码开发平台助力生产管理:制造管理系统

随着全球经济化与信息化&#xff0c;制造企业的生产管理系统的建立对于制造业企业的信息化以及生产的智能化具有重要的意义&#xff0c;同时也是促进现代工业进步和发展的基础条件之一。我国制造业属于传统行业&#xff0c;凭借生产规模大且劳动力资源丰富在全世界拥有着一定地…

学习Hadoop(一)——搭建hadoop集群

最近开始学习大数据的相关知识&#xff0c;要学习大数据就不得不提到Hadoop。 一般来说学习一门新的知识&#xff0c;很多都是先理论再实践 我则不然&#xff0c;先实践&#xff0c;再了解理论 目录一、VM网络设置二、安装Centos72.1 网络配置2.2 设置主机名2.3 hosts设置2.4…

HighTec 工程配置详解

HighTec 工程配置详解 编译配置 构建配置管理器 管理器内&#xff0c;可以创建各种不同用途的配置项。例如用于生产工程的 ROM 配置&#xff0c;用于调试工程的 Debug 配置。对于每个配置&#xff0c;所设置的工程属性是单独分开的&#xff0c;互相之间没有影响。 打开构建配…

nvcc编译器之设备和主机独立编译(chapter 6)

目录 6. CUDA中的独立编译 6.1 单独编译时的代码改动 6.2 nvcc独立编译选项 6.3 库 6.4 示例 6.5 分布编译优化 6.6 独立编译的潜在问题 6. CUDA中的独立编译 在5.0版本之前&#xff0c;CUDA不支持分开编译&#xff0c;因此CUDA代码不能访问跨文件&#xff08;编译单元&…

python专属的Remote Produce Call框架:rpyc

python专属的Remote Produce Call框架&#xff1a;rpyc python生态里面的rpc框架很多&#xff0c;比较出名的有grpc和thrift&#xff0c;但是这两个框架在python体系里面用起来相对比较复杂&#xff0c;下面介绍一个极其简洁轻量级的纯python实现的RPC框架&#xff1a;rpyc。 …

【研发工具】Centos下搭建轻量级内网FTP服务器

1 前言 vsftpd是一款非常小巧、高性能、稳定性好、安全易用的Linuxt环境下的的FTP服务器软件。 vsftpd 名称是取自 very secure FTP daemon 的缩写&#xff0c;可以在类UNIX类操作系统上运行。 2 部署 通常情况下可以在线安装, # centos / Redhat 操作系统下 $ yum -y ins…

使用vite 搭建vue 3的项目

一、目标&#xff1a; 使用vite搭建一个Vue 3 的项目&#xff0c;并启动成功。 二、准备工作 首先你要有Node.js、VSCode编辑器、Chrome浏览器 关于下载的问题Node.js可以去官网下载 链接&#xff1a;http://nodejs.cn/download/ 下载左边的长期支持版本就好&#xff0c;最新版…

运算符-12-多学一招原码反码补码,隐式和强制转换,位运算

下面来解释这些东西是怎么来的 原码 例如&#xff1a; 最左边的叫做符号位&#xff0c;0 为正&#xff0c;1 为负&#xff0c;后面的才是具体的数值 在计算机中&#xff0c;一个 0 或者 1 所占的空间叫 bit 中文名叫比特位&#xff0c;八个 bit 就称为一个字节&#xff0c;字…

【python小项目】用python写一个小工具——番茄钟

用python写一个小工具——番茄钟 最近听到朋友说在用番茄钟&#xff0c;有点兴趣也想下载一个来用用&#xff0c;后面仔细一想这玩意做起来也不难&#xff0c;索性自己顺手写一个算了&#xff0c;在这里也分享给大家了 一、功能简述 番茄钟即番茄工作法&#xff0c;番茄工作法…