# egg-born-module-a-wxwork

CabloyJS的企业微信模块

## Cabloy-企业微信是什么

`Cabloy-企业微信`是基于CabloyJS全栈业务开发框架开发的`企业微信接口模块`，当前整合了`自建应用`和`企业微信小程序`的接口，达到`开箱即用`的使用效果。在`Cabloy-企业微信`的基础上，可以很方便的开发各类企业微信业务系统

## 核心目标

`企业微信开发`最复杂的就是账号体系对接，比如：

1. 企业通讯录同步：部门、成员
2. 在`消息推送系统`中，对用户进行认证
2. 通过`网页登录`，对用户进行认证
3. 通过`微信小程序登录`，对用户进行认证

一旦完成了这些场景下的账号体系对接，真正的业务开发就很简单了

因此，`Cabloy-企业微信`模块的核心目标，就是自动完成这些场景下的账号体系对接，我们所需要做的就是提供一些配置参数，然后就可以愉快的开启业务逻辑的开发了

## 两大亮点

基于CabloyJS全栈业务开发框架本身提供的特性，使得`Cabloy-企业微信`模块具有以下两个显著的亮点：

### 1. PC、Mobile自适应

许多企业微信应用存在这样一个问题：在Mobile端只能使用一部分功能，其他更多功能则需要登录PC系统进行操作

而CabloyJS框架下的`Cabloy-企业微信`允许所有的业务功能同时支持PC和Mobile使用。同时又能保证以下两点：
  1. 通过角色权限系统，控制不同用户使用不同功能
  2. 前端页面采用异步加载策略，从而适应大型项目的开发

- Mobile端效果

![mobile-zhcn](./docs/assets/screenshots/wxwork/mobile-zhcn.gif)

- PC端效果

![pc-zhcn](./docs/assets/screenshots/wxwork/pc-zhcn.gif)

### 2. 数据孤岛

企业从不同服务提供商采购不同的企业微信应用，必然导致`数据孤岛`的出现，而且这些数据散存在不同服务商的后台，缺乏数据联动与共享机制

而CabloyJS框架本身就是基于`业务模块`构建的。企业自建的模块或者使用第三方的模块，都汇集在一个CabloyJS项目之中，并进行私有部署，从而从根本上解决了`数据孤岛`的问题，不仅能实现数据联动与共享，也可以更灵活的进行数据采集、处理和分析

> 归根结底一句话，数据和程序都掌握在自己的手中

## 特性

基于CabloyJS全栈框架提供的便利性和灵活性，`Cabloy-企业微信`主要有如下特性:

### 1. 一站式整合

当前整合了`企业微信自建应用`和`企业微信小程序`的接口，具体如下：

|场景|名称|说明|
|--|--|--|
|自建应用|消息推送系统|自动完成接口对接，并对用户进行认证|
|自建应用|网页登录|自动跳转微信登录，并对用户进行认证|
|自建应用|网页JSSDK|自动注入JSSDK，并自动完成配置|
|小程序|后台登录接口|自动完成接口对接，并对用户进行认证|
|小程序|前端SDK|提供SDK，便于企业微信小程序前端直接访问CabloyJS后端API|

### 2. 开箱即用

只需配置好企业微信账号参数，所有接口自动完成对接

### 3. 多小程序支持

`企业微信`可以关联多个`企业微信小程序`，因此，模块也提供了多小程序支持

### 4. 多站点支持

通过CabloyJS提供的`多实例`特性，可以实现`多站点支持`，比如为不同的企业提供企业微信服务。请参见：[EggBornJS：多实例](https://cabloy.com/zh-cn/articles/44e45b3928ca4c6cb63809558145e000.html)

### 5. PC、Mobile自适应

> 如上所述

## 快速开始

快速开始，请参见： [https://cabloy.com/zh-cn/articles/wxwork-quick-start.html](https://cabloy.com/zh-cn/articles/wxwork-quick-start.html)
