当Cabloy-企业微信
模块完成时,加上之前已完成的Cabloy-微信
模块,关于在 CabloyJS 中与微信/企业微信
对接的任务已经完成了。这些模块的目标就是,只需填入各类服务的参数,就可以直接进入具体的业务开发,从而达到开箱即用
的效果
微信/企业微信
的开发,有诸多的坑,而最大的坑就是账户体系
了
微信
与企业微信
是不同的账户体系微信
中,openid 是识别用户的唯一标识,如果开通了微信开放平台
,那么就可以通过 unionid 把散落在微信公共号
、微信小程序
等不同服务的 openid 关联起来,标识同一个用户。那么,如何把 openid 与系统中的用户系统对接起来?如果开通了 unionid,又如何对接?unionid 开通之前的旧账户是否也可以平滑迁移?企业微信
中,通过 userid 来识别每个企业成员。与微信
不同的是,企业微信
通过部门树
来管理成员,从而为资源授权和分配
提供组织依据。那么,我们在进行系统初始化的第一步就是要把企业的部门和成员
同步到系统中,并实现双向查找
功能除了纷繁复杂的账户体系对接任务,接下来我们还要面对一些随时开发随时遇到的小问题。因为微信/企业微信开发涉及到的场景、概念和术语有很多,往往需要通读官方文档。而官方文档对有些概念的表述语焉不详,惜墨如金,于是不得不写代码来验证一些猜测,然后再回头重温文档。当这一遍走完把项目完成后,如果有一个新项目,很可能还要再走一遍。这里仅仅列举一些经常出现的问题:
openid/unionid
,而小程序返回的openId/unionId
。如果稍不留意,就掉在坑里了 企业微信
支持不同的应用:内置的应用、第三方应用、自建应用、关联的小程序等等。这些应用如何进行架构,提供统一便捷的 API 调用模型企业微信小程序
本体是微信小程序
,然后关联到企业微信
成为一个企业微信应用。只有明白了这些概念和关系,才能准确的进行对接不同的开发语言,都能找到对应的微信 API SDK。但这些微信 API SDK 往往是把官方提供的 http api 进行了一个语言层面的封装,很少走得更远的。比如,通过微信 API SDK,我们可以很方便的获取 AccessToken,可以获取 User 信息,但是如何把获取到的 User 与系统对接,如何处理 openid 和 unionid 之间的关联,仍然需要我们自己设计和开发
再比如,通过微信 API SDK 可以很方便的获取企业微信的部门和成员。但是如何与系统中的角色和用户对接,并支持不同的场景和登录方式,仍然有大量的工作需要做
而 CabloyJS 的微信/企业微信
模块的核心目标
就是提供开箱即用
的效果。只需配置好参数,所有的对接工作全部自动完成,使我们一步跨过纷繁的细节,直接进入具体的业务开发当中。当然,CabloyJS 的微信/企业微信
模块是完全开源
的,我们仍然可以从中清晰地看到这些细节,以及处理的方式
为什么 CabloyJS 可以做到开箱即用
的效果?就是因为 CabloyJS 是全栈 NodeJS 框架,可以把前端组件
、后端服务
、数据存储与访问
等等,有机的结合在一起
比如,CabloyJS 模块通过这些前后端的配合,直接实现了企业微信中部门与用户的同步工作,甚至还通过 CabloyJS 底层提供的SocketIO
机制实现了前端同步进度的实时显示
基于 CabloyJS 全栈业务开发框架本身提供的特性,使得Cabloy-企业微信
模块具有以下两个显著的亮点:
许多企业微信应用存在这样一个问题:在 Mobile 端只能使用一部分功能,其他更多功能则需要登录 PC 系统进行操作
而 CabloyJS 框架下的Cabloy-企业微信
允许所有的业务功能同时支持 PC 和 Mobile 使用。同时又能保证以下两点:
企业从不同服务提供商采购不同的企业微信应用,必然导致数据孤岛
的出现,而且这些数据散存在不同服务商的后台,缺乏数据联动与共享机制
而 CabloyJS 框架本身就是基于业务模块
构建的。企业自建的模块或者使用第三方的模块,都汇集在一个 CabloyJS 项目之中,并进行私有部署,从而从根本上解决了数据孤岛
的问题,不仅能实现数据联动与共享,也可以更灵活的进行数据采集、处理和分析
归根结底一句话,数据和程序都掌握在自己的手中
基于 CabloyJS 全栈框架提供的便利性和灵活性,Cabloy-企业微信
主要有如下特性:
当前整合了企业微信自建应用
和企业微信小程序
的接口,具体如下:
场景 | 名称 | 说明 |
---|---|---|
自建应用 | 消息推送系统 | 自动完成接口对接,并对用户进行认证 |
自建应用 | 网页登录 | 自动跳转微信登录,并对用户进行认证 |
自建应用 | 网页 JSSDK | 自动注入 JSSDK,并自动完成配置 |
小程序 | 后台登录接口 | 自动完成接口对接,并对用户进行认证 |
小程序 | 前端 SDK | 提供 SDK,便于企业微信小程序前端直接访问 CabloyJS 后端 API |
只需配置好企业微信账号参数,所有接口自动完成对接
企业微信
可以关联多个企业微信小程序
,因此,模块也提供了多小程序支持
通过 CabloyJS 提供的多实例
特性,可以实现多站点支持
,比如为不同的企业提供企业微信服务。请参见:EggBornJS:多实例