专栏首页CabloyJS全栈开发CabloyJS微信模块、企业微信模块已出齐
原创

CabloyJS微信模块、企业微信模块已出齐

前言

Cabloy-企业微信模块完成时,加上之前已完成的Cabloy-微信模块,关于在CabloyJS中与微信/企业微信对接的任务已经完成了。这些模块的目标就是,只需填入各类服务的参数,就可以直接进入具体的业务开发,从而达到开箱即用的效果

背景分析

1. 账户体系

微信/企业微信的开发,有诸多的坑,而最大的坑就是账户体系

  • 首先,微信企业微信是不同的账户体系
  • 微信中,openid是识别用户的唯一标识,如果开通了微信开放平台,那么就可以通过unionid把散落在微信公共号微信小程序等不同服务的openid关联起来,标识同一个用户。那么,如何把openid与系统中的用户系统对接起来?如果开通了unionid,又如何对接?unionid开通之前的旧账户是否也可以平滑迁移?
  • 企业微信中,通过userid来识别每个企业成员。与微信不同的是,企业微信通过部门树来管理成员,从而为资源授权和分配提供组织依据。那么,我们在进行系统初始化的第一步就是要把企业的部门和成员同步到系统中,并实现双向查找功能

2. 杂项

除了纷繁复杂的账户体系对接任务,接下来我们还要面对一些随时开发随时遇到的小问题。因为微信/企业微信开发涉及到的场景、概念和术语有很多,往往需要通读官方文档。而官方文档对有些概念的表述语焉不详,惜墨如金,于是不得不写代码来验证一些猜测,然后再回头重温文档。当这一遍走完把项目完成后,如果有一个新项目,很可能还要再走一遍。这里仅仅列举一些经常出现的问题:

  • JSON与XML:微信公共号的消息推送系统采用XML作为数据格式,而小程序既要支持XML也要支持JSON。同时又有明文模式、兼容模式、安全模式之别。
  • openid/unionid与openId/unionId:在进行账号登录时,微信公共号返回的是openid/unionid,而小程序返回的openId/unionId。如果稍不留意,就掉在坑里了
  • 企业微信支持不同的应用:内置的应用、第三方应用、自建应用、关联的小程序等等。这些应用如何进行架构,提供统一便捷的API调用模型
  • 企业微信小程序本体是微信小程序,然后关联到企业微信成为一个企业微信应用。只有明白了这些概念和关系,才能准确的进行对接

核心目标

1、常见微信API SDK的问题

不同的开发语言,都能找到对应的微信API SDK。但这些微信API SDK往往是把官方提供的http api进行了一个语言层面的封装,很少走得更远的。比如,通过微信API SDK,我们可以很方便的获取AccessToken,可以获取User信息,但是如何把获取到的User与系统对接,如何处理openid和unionid之间的关联,仍然需要我们自己设计和开发

再比如,通过微信API SDK可以很方便的获取企业微信的部门和成员。但是如何与系统中的角色和用户对接,并支持不同的场景和登录方式,仍然有大量的工作需要做

2. 开箱即用

而CabloyJS的微信/企业微信模块的核心目标就是提供开箱即用的效果。只需配置好参数,所有的对接工作全部自动完成,使我们一步跨过纷繁的细节,直接进入具体的业务开发当中。当然,CabloyJS的微信/企业微信模块是完全开源的,我们仍然可以从中清晰地看到这些细节,以及处理的方式

为什么CabloyJS可以做到开箱即用的效果?就是因为CabloyJS是全栈NodeJS框架,可以把前端组件后端服务数据存储与访问等等,有机的结合在一起

比如,CabloyJS模块通过这些前后端的配合,直接实现了企业微信中部门与用户的同步工作,甚至还通过CabloyJS底层提供的SocketIO机制实现了前端同步进度的实时显示

contacts-sync-zhcn.gif

两大亮点

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

1. PC、Mobile自适应

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

而CabloyJS框架下的Cabloy-企业微信允许所有的业务功能同时支持PC和Mobile使用。同时又能保证以下两点:

  1. 通过角色权限系统,控制不同用户使用不同功能
  2. 前端页面采用异步加载策略,从而适应大型项目的开发
  • Mobile端效果
mobile-zhcn.gif
  • PC端效果
pc-zhcn.gif

2. 数据孤岛

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

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

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

特性

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

1. 一站式整合

当前整合了企业微信自建应用企业微信小程序的接口,具体如下:

场景

名称

说明

自建应用

消息推送系统

自动完成接口对接,并对用户进行认证

自建应用

网页登录

自动跳转微信登录,并对用户进行认证

自建应用

网页JSSDK

自动注入JSSDK,并自动完成配置

小程序

后台登录接口

自动完成接口对接,并对用户进行认证

小程序

前端SDK

提供SDK,便于企业微信小程序前端直接访问CabloyJS后端API

2. 开箱即用

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

3. 多小程序支持

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

4. 多站点支持

通过CabloyJS提供的多实例特性,可以实现多站点支持,比如为不同的企业提供企业微信服务。请参见:EggBornJS:多实例

参考链接

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微信公众号开发:微信服务号和订阅号的区别!

    微信开发又称微信公众平台开发、或微信公众号开发,分为微信服务号、微信订阅号、以及微信企业号,其中服务号和订阅号是企业对外进行营销的微信官方平台,而企业号是针对企...

    用户2356481
  • 【已修复】微信后台服务故障 部分用户收发消息或登录受影响

      就在不久前的刚刚,部分微信用户反映在使用微信时,出现退出后无法登陆的情况。微信团队在官方微博上确认了此事,并发公告正在紧急抢救。对于月活跃用户达到三四亿的a...

    ytkah
  • 腾讯发布 2015 微信用户数据报告

    大数据文摘
  • 微信营销你是否做好了上半屏的工作?

      微信营销,图文消息群发是其很重要的一块,一篇好的图文可以阅读量过万甚至更多,带来的收藏分享粉丝也不尽相同。那么问题来了,微信图文消息要注意哪些呢?你研究过微...

    ytkah
  • 【企鹅智酷最新报告】微信2017用户研究和商机洞察

    8.89亿月活跃用户,近一年来直接带动信息消费1742.5亿元——经过六年的高速发展,微信已经成为了中国移动互联网的国民级应用。 但在这些“看得到的数据”背后,...

    钱塘数据
  • 线下迁移线上,如何使用企业微信打造数字化企业?

    2019年12月23日微信发布了全新的企业微信3.0,提出对内让信息流转高效,对外连接11亿微信用户。如何在企业微信上创建一个连接客户的应用,将小程序接入企业微...

    腾小云
  • 为什么我们对微信如此依赖?

    之所以大家对微信有如何强烈的依赖,这是社交软件的关键属性所在,从心理上讲大家都喜欢先入为主,特别是已经习惯于在一个熟悉的环境下工作,切换起来的难度就会非常大,微...

    程序员互动联盟
  • android版微信5.2.1更新 支持微信聊天记录备份到电脑上

      昨天微信 5.2.1 for Android 全新发布了,和微信 5.2.1 for iPhone一样,支持拍照分享,可以把照片发送给多个朋友,最重要的一个...

    ytkah
  • 这个H5页面,让你重新认识微信

    昨天有微信的朋友发了一个H5页面给我(阅读原文有链接),让我友情转发下,H5我见了很多,不过微信做H5页面在自家阵地朋友圈传播内容,还是挺有意思的。看了内容,还...

    罗超频道
  • 2020,微信一下,马上ToB

    2020微信公开课PRO上,张小龙说微信很长一段时间都在思考怎么做,而现在的重点则是做什么。从公开课上的分享来看,微信接下来要做的自然很多,但概括来讲无非还是T...

    曾响铃

扫码关注云+社区

领取腾讯云代金券