Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CabloyJS微信模块、企业微信模块已出齐

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

原创
作者头像
zhennann
修改于 2020-06-28 02:19:52
修改于 2020-06-28 02:19:52
2.1K0
举报
文章被收录于专栏:CabloyJS全栈开发CabloyJS全栈开发

前言

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

背景分析

1. 账户体系

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

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

2. 杂项

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

  • JSONXML:微信公共号的消息推送系统采用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
contacts-sync-zhcn.gif

两大亮点

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

1. PC、Mobile自适应

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

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

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

2. 数据孤岛

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

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

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

特性

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

1. 一站式整合

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

场景

名称

说明

自建应用

消息推送系统

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

自建应用

网页登录

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

自建应用

网页JSSDK

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

小程序

后台登录接口

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

小程序

前端SDK

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

2. 开箱即用

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

3. 多小程序支持

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

4. 多站点支持

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

参考链接

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信小程序云开发
  微信小程序云开发是2018年9月腾讯上线的集云函数、云数据库、云存储和云调用等功能于一身的开放服务。云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,适用平台提供的API进行核心业务开发,即可实现快速上线和迭代,同时这一能力同开发者使用的云服务相互兼容,并不互斥。
别团等shy哥发育
2023/02/25
9.5K0
微信小程序云开发
微信公众号开发相关流程及功能介绍怎么写_微信公众号平台官网
大家好,又见面了,我是你们的朋友全栈君。 1. 开发前准备 1.1 注册微信公众平台账号 进入的网址:https://mp.weixin.qq.com。 测试号(网址:https://mp.
全栈程序员站长
2022/09/24
5.4K0
微信公众号开发相关流程及功能介绍怎么写_微信公众号平台官网
.NET Core 微信公众号小程序6种获取UnionID方法,你知道哪几种?
获取UnionID是开发微信公众号/小程序中很有必要的一个环节,特别是针对一个公司拥有多个公众号小程序而推出的机制,实现打通账户一体化,用UnionID来区分多平台的唯一性。
hailang2zh
2019/10/21
1.7K0
.NET Core 微信公众号小程序6种获取UnionID方法,你知道哪几种?
企业微信&小程序授权全链路打通指南
近期,我在致力于打造自己的小程序产品时,迎来了一项关键性的进展——微信相关授权流程的完整实现。从用户登录到权限获取,我们细致入微地梳理并实现了每一项授权机制,确保了用户体验的流畅与安全。
程序员海军
2024/12/22
3960
企业微信&小程序授权全链路打通指南
微信账户体系扫盲
一个用户对于同主体微信小程序/公众号/APP的标识,开发者需要在微信开放平台下绑定相同账号的主体。开发者可通过 UnionId,实现多个小程序、公众号、甚至APP 之间的数据互通
薛定喵君
2020/04/21
1.6K0
微信公众号发布提醒(微信公众号模板消息接口)
灵感来源于学校的 每日健康日报,要求使用微信小程序进行每日健康打卡。所以此项目的功能类似于 QQ群机器人,或者是 每日闹钟。
全栈程序员站长
2022/07/26
13.2K0
微信公众号发布提醒(微信公众号模板消息接口)
微信小程序与云开发
Java、NodeJS、JavaScript、HTML5、CSS3、VueJs、ReactJs、前端工程化、前端架构
达达前端
2019/08/05
9.4K0
微信小程序与云开发
节省80%代码量?对接微信支付,云开发推出两大新能力
微信支付作为国内最大的支付服务之一,多年以来一直是各类APP、小程序、Web应用必须对接的公共服务之一。当然,对接微信支付也并非那么简单,除了官方文档、代码示例、SDK以外,依然会有一些较为复杂、繁重的开发工作量,例如:
腾讯云开发TCB
2023/09/13
5180
节省80%代码量?对接微信支付,云开发推出两大新能力
微信开发之-登录
了不起学弟:了不起,上次你和我讲了如何去维护一个access_token了,我也学会了
灬沙师弟
2023/07/08
6370
微信开发之-登录
微信小程序避坑指南
 详见官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/client-lib/client.html
smy
2018/11/28
3.4K0
微信小程序避坑指南
小程序与普通网页开发有什么区别?
小程序的开发同普通的网页开发相比有很大的相似性,小程序的主要开发语言也是 JavaScript,但是二者还是有些差别的。
海岛船长加西亚
2023/01/12
1.4K0
小程序如何接入微信支付?你可能会遇上这些坑 | 技术宝典
微信支付于 2013 年正式发布,一路走来,作为内测开发团队的爱范儿明显感觉到,微信支付的接口稳定程度有质的提升,围绕支付相关的场景也配备了对应的接口。 微信小程序的发布,随机附送了一个微信支付模块,
知晓君
2018/06/28
6490
PHP 网站应用微信登录
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/76221707
泥豆芽儿 MT
2018/09/11
5K0
PHP 网站应用微信登录
微信小程序学习笔记,持续记录。
开始 1. 小程序开发指南(入门必读):https://developers.weixin.qq.com/ebook?action=get_post_info&docid=000ace6c960378
房东的狗丶
2023/02/17
1.4K0
微信小程序学习笔记,持续记录。
微信小程序实现微信和账号密码同时登录
微信小程序是一种轻量级的应用程序,可以在微信中直接使用,无需下载和安装。在微信小程序中,用户可以使用微信账号登录,也可以使用账户密码登录。本文将介绍如何在微信小程序中实现微信和账户密码同时登录。
Front_Yue
2023/09/22
2.8K2
微信小程序实现微信和账号密码同时登录
理解小程序的安全与管控
原文链接:https://godbasin.github.io/2018/11/04/wxapp-manage-and-security/
李成熙heyli
2018/11/14
3.1K0
理解小程序的安全与管控
微信公众号开发基本流程
背景: 过年前后做了个微信公众号项目,已经过去一段时间了,抽空回忆总结下基本流程吧,不然很快估计自己就忘了。。
全栈程序员站长
2022/09/06
3.9K0
微信公众号开发基本流程
SpringBoot整合微信登录
终有救赎
2023/10/16
1.1K0
SpringBoot整合微信登录
微信登陆、支付、事件监听等常见小程序接口调用讲解
在微信小程序开发过程中,开发者可以调用一系列丰富的接口来增强小程序的功能和用户体验。本期先对常见的接口做一下盘点和介绍,后续笔者会对其中登陆、支付、事件监听等比较重要的接口做进一步的讲解。
海岛船长加西亚
2024/04/10
5190
微信小程序云开发功能实践
前端开发者在进行小程序开发时,总是需要接触到小程序服务端的开发,如openId的获取、生成小程序码、微信支付等。这些功能必须要搭配后端服务进行开发的,这就可能会导致前端开发者不得不去接触、学习后端的开发语言:如Java、Python、PHP等,产生了额外的学习成本。
胡哥有话说
2019/07/25
7.7K3
微信小程序云开发功能实践
推荐阅读
相关推荐
微信小程序云开发
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档