# 企业微信接口封装 **Repository Path**: zcLonelyCode/wecat-prot-packaging ## Basic Information - **Project Name**: 企业微信接口封装 - **Description**: 通过springboot配置 简单调用获取企业微信数据 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-08-06 - **Last Updated**: 2023-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介 * 使用springboot和Hutool进行企业微信的封装通过yml调用方法简单获取企业微信获取同步 * 使用springboot的Schedule进行定时任务,自定义线程池实现异步(要注意数据的一致) * 使用springboot的mail简单封装,失败通过邮箱发送失败信息,在yml中简单配置就好了 * 需要导入依赖spring-boot-start-aop和hutools-all 结构步骤: 1. 使用springboot的Schedule模块进行定时任务开发,同步企业微信的数据,由于Schedule默认使用单线程,就自定义线程池AsynchPoolTaskConfig实现多线程处理,失败使用自定义类TimedTaskException进行邮件通知, > 举例: ```java /** * 在tasks包下创建类 使用 @Async(异步) @Scheduled (写cron表达式) 一个简单的同步就写好了 * 主要:必须要在类上加@Component 注入spring */ public class WechatTask { @Async @Scheduled(cron = "*/5 * * * * ? ") public void TenGetPro() { System.out.println("写自己的逻辑,如定时同步企业微信"); } } ``` 2. 封装了WeCatApi,直接@Autowired注入即可使用,使用接口实现方式,方便扩展 > 举例: ```java @Component public class WechatTask { @Autowired WeChatToken weCatUtils; @Autowired WeCatApiImpl weCatApi; /** * 每5秒获取一次部门成员详情 */ @Async @Scheduled(cron = "*/5 * * * * ? ") public void TenGetPro() { List userInfo = weCatApi.getUserInfo(10, 1); userInfo.forEach(weChatUser -> System.out.println(weChatUser)); } } ``` 4. 使用了spring-aop,省略每次调用企业微信接口时频繁获取access_token的步骤,使用cache缓存,避免有效期内每次调用 > yml配置样例: ```yaml spring: mail: host: smtp.qq.com port: 465 username: 123456789@qq.com #填写自己的邮箱 password: 123456789 #用邮件的注册码 protocol: smtps default-encoding: UTF-8 application: name: theangel umisky: mails: #这个里面的就是需要通知的人 ,可以用很多个 往下面加就好了 - poo0054@outlook.com - zhangz4@casagroup.com.cn wecat: #企业ID,获取方式参考:术语说明-corpid corpid: qiyeweiid #应用的凭证密钥,获取方式参考:术语说明-secret Secret: yingyongdemiyaosecret # 打印到控制台 logging: level: com.theangel.wechat.tasks: debug ``` corpid获取方式:企业ID,获取方式参考:[术语说明-corpid](https://work.weixin.qq.com/api/doc/90000/90135/90665#corpid) secret获取方式:应用的凭证密钥,获取方式参考:[术语说明-secret](https://work.weixin.qq.com/api/doc/90000/90135/90665#secret)