开发企业微信

开发企业微信

前言:

开发企业微信需要看企业微信官方文档:企业微信官方文档,里面有各种API
然后需要一个开发工具包,我用的github的,github文档,里面有微信的各种开发工具包,按需要添加对应的依赖即可,用开发工具包可以省去获取token和请求http请求简化开发提高开发效率

第一步导入企业微信依赖

       <!-- 企业微信 -->
        <dependency>
            <groupId>com.github.binarywang</groupId>
            <artifactId>weixin-java-cp</artifactId>
            <version>4.4.0</version>
        </dependency>

第二步把必要的参数放到配置文件

参数参考此处

wx:  
  cp:
    configs:
      corpId: ww913379742b252258
      corpsecret: 5EC-y8yF6-03wUmznSPu4E6nZ-U7bGnwhEtYQQkric8
      agentId: 123
      redirectUrl: https://10.13.156.7
      chatId: ww913379742b2gfhhjfgh

第三步创建配置文件

把需要的接口注入到spring容器中交给spring来管理,我只用到下面两个,如需要其他参考企业微信接口文档配置

@Configuration
@Getter
public class WxConfig {
    @Value("${wx.cp.configs.corpsecret}")
    private String secret;
    @Value("${wx.cp.configs.corpId}")
    private String corpId;
    @Value("${wx.cp.configs.agentId}")
    private Integer agentId;
    @Value("${wx.cp.configs.redirectUrl}")
    private String redirectUrl;
    @Value("${wx.cp.configs.chatId}")
    private String chatId;
    private static String APP_AGENT_PREFIX = "wx";
    @Resource
    private RedisService redisService;

    @Bean
    public WxCpService getWxCpService() {
        WxCpService wxCpService = new WxCpServiceImpl();
        WxCpDefaultConfigImpl config = new WxCpDefaultConfigImpl();
        config.setAgentId(agentId);
        config.setCorpSecret(secret);
        config.setCorpId(corpId);
        resetTokenAndJsApi(wxCpService, config);
        return wxCpService;
    }

    @Bean
    public WxCpExternalContactService getwxCpExternalContactService() {
        WxCpService wxCpService = new WxCpServiceImpl();
        WxCpExternalContactService wxCpExternalContactService = new WxCpExternalContactServiceImpl(wxCpService);
        WxCpDefaultConfigImpl config = new WxCpDefaultConfigImpl();
        config.setAgentId(agentId);
        config.setCorpSecret(secret);
        config.setCorpId(corpId);
        resetTokenAndJsApi(wxCpService, config);
        return wxCpExternalContactService;
    }


    public void resetTokenAndJsApi(WxCpService wxCpService, WxCpDefaultConfigImpl wxCpDefaultConfig) {
        wxCpService.setWxCpConfigStorage(wxCpDefaultConfig);
        String wxAccessToken = APP_AGENT_PREFIX + this.agentId;
        String json = redisService.getCacheObject(wxAccessToken);
        if (!StringUtils.isEmpty(json)) {
            wxCpDefaultConfig = JSON.parseObject(json, WxCpDefaultConfigImpl.class);
        }
        if (wxCpDefaultConfig.isAccessTokenExpired()) {
            try {
                String accessToken = null;
                accessToken = wxCpService.getAccessToken(false);
                wxCpDefaultConfig.setAccessToken(accessToken);
            } catch (WxErrorException e) {
                e.printStackTrace();
            }
        }
        if(wxCpDefaultConfig.isJsapiTicketExpired()){
            String jsApi = null;
            try {
                jsApi = wxCpService.getJsapiTicket();
                wxCpDefaultConfig.setJsapiTicket(jsApi);
            } catch (WxErrorException e) {
                e.printStackTrace();
            }
        }
        redisService.setCacheObject(wxAccessToken, JSON.toJSONString(wxCpDefaultConfig));
    }
}

第四步实现功能

需要哪个接口参考企业微信官方文档和企业微信接口文档都可以完成,链接在上面,如果找不到对应的接口文档,就可以用get,post请求获取,需要多传一个url

/**
     * 获取客户群列表(同步客户群)
     */
    @Override
    public boolean synchCustomCrowd() {
        // 获取当前用户
        UmsAdmin currentMember = umsAdminService.getCurrentMember();
        String username = currentMember.getUsername();
        try {
            String post = wxCpService.post("https://qyapi.weixin.qq.com/cgi-bin/externalcontact/groupchat/list", "{\"owner_filter\": {" +
                    "\"userid_list\": [\"填写用户的企业id\"]\n" +
                    "},\"limit\" : 10}");

            CustomCrowd customCrowd = JSON.parseObject(post, CustomCrowd.class);
            List<GroupChatList> groupChatList = customCrowd.getGroup_chat_list();
            List<WxCrowdEntity> wxCrowdEntities = new ArrayList<>();
            for (GroupChatList chatList : groupChatList) {
                WxCrowdEntity wxCrowdEntity = new WxCrowdEntity();
                wxCrowdEntity.setChatId(chatList.getChat_id());
                List<WxCrowdEntity> customCrowd1 = getCustomCrowd(wxCrowdEntity);
                // 判断该群是否已经同步,如果同步不在同步
                if (customCrowd1.size() == 0) {
                    // 获取群聊详细信息
                    WxCpUserExternalGroupChatInfo.GroupChat crowd = wxCpExternalContactService.getGroupChat(chatList.getChat_id(), 0).getGroupChat();
                    wxCrowdEntity.setName(crowd.getName());
                    wxCrowdEntity.setOwner(crowd.getOwner());
                    wxCrowdEntities.add(wxCrowdEntity);
                }
            }
            // 群聊信息存入数据库
            if (wxCrowdEntities.size() != 0)
                wxCrowdService.saveBatch(wxCrowdEntities);
        } catch (WxErrorException e) {
            e.printStackTrace();
        }
        return true;
    }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Spring Boot是一个用于快速构建基于Java的应用程序的框架,而企业微信微信团队专门为企业用户提供的一款移动办公应用。使用Spring Boot开发企业微信可以带来以下好处: 1. 快速开发:Spring Boot提供了一套简单易用的配置和快速启动的机制,可以帮助开发者快速构建企业微信应用程序,提高开发效率。 2. 简化配置:Spring Boot通过自动配置的方式,减少了繁琐的配置和编码工作,开发者只需要关注业务逻辑的实现,而不需要过多关注底层的细节。 3. 内置容器:Spring Boot内置了Tomcat和Jetty等常用的Web容器,开发者不需要手动搭建和配置容器环境,可以直接运行应用程序,减少了部署和运行的复杂性。 4. 集成企业微信API:企业微信提供了丰富的API供开发者使用,Spring Boot可以通过集成企业微信Java SDK,方便地调用各种API进行消息发送、用户管理、部门管理等功能的开发。 5. 良好的扩展性:Spring Boot提供了模块化的架构,可以根据需求选择相应的模块进行开发,同时支持自定义模块的集成,方便进行业务扩展和定制化开发。 综上所述,使用Spring Boot开发企业微信可以帮助开发者更快速地构建应用程序,并且具备良好的可扩展性和可维护性,能够满足企业微信应用的各种需求。 ### 回答2: Spring Boot是一个基于Spring框架的开发工具,可以帮助开发者快速搭建Spring应用程序。而企业微信是一种面向企业内部通信和协作的工具,提供了包括组织架构管理、消息发送、OA办公等功能。 在使用Spring Boot开发企业微信时,可以借助企业微信官方提供的开发文档和SDK,结合Spring Boot框架进行开发。首先,需要在企业微信开发者后台创建应用,获取应用的CorpID和Secret,配置在Spring Boot的配置文件中,以便后续进行身份验证和接口调用。 接下来,可以使用企业微信提供的SDK集成企业微信的各种功能。例如,通过SDK中的成员管理接口,可以实现企业内部员工的添加、删除、更新等操作;通过消息发送接口,可以实现企业内部的消息推送功能;通过OA接口,可以实现审批流程、加班申请等功能。 此外,Spring Boot还提供了一系列方便的特性,例如自动装配、内嵌Web服务器等,可以方便地搭建企业微信的后端服务。可以使用Spring MVC处理接口请求,使用Spring Data JPA进行数据持久化,使用Spring Security进行权限管理等。 总的来说,借助于Spring Boot的便捷开发特性和企业微信提供的SDK,开发者可以快速开发出功能完备的企业微信应用程序。通过合理的架构设计和代码优化,可以使得企业微信应用具备良好的性能和扩展性,在不断迭代中满足企业日常通信与协作的需求。 ### 回答3: Spring Boot是一种用于开发Java应用程序的快速、便捷、灵活的框架。企业微信是一款由腾讯开发的专为企业打造的即时通讯工具。使用Spring Boot开发企业微信可以带来以下好处。 首先,Spring Boot内置了很多常用的开发框架和工具,例如Spring MVC、Spring Data JPA和Spring Security等。这些框架和工具使得开发者能够快速构建高效、健壮的企业微信应用程序。 其次,Spring Boot提供了自动配置的特性,使得开发者无需繁琐的配置步骤,即可快速搭建企业微信应用程序的基本框架。开发者只需按照规范进行开发,Spring Boot会根据应用程序的依赖自动进行配置和装配。 再次,Spring Boot拥有丰富的社区支持和强大的生态系统。开发者可以轻松地找到各种开源的插件和扩展,以满足不同业务需求。同时,Spring Boot的文档和教程非常丰富,开发者可以很容易地学习和掌握相关知识。 最后,Spring Boot具有良好的可扩展性和可维护性。它采用模块化的设计思路,使得开发者可以灵活地添加或移除功能模块,满足企业微信应用程序的不同需求。同时,Spring Boot的代码结构清晰,易于维护和管理。 总之,使用Spring Boot开发企业微信可以提高开发效率、简化配置、拓展功能和提升应用程序的可维护性。这使得企业可以更快速地开发出高质量的微信应用程序,满足企业内部即时通讯和协作的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值