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機制實現了前端同步進度的實時顯示

在這裏插入圖片描述

兩大亮點

基於CabloyJS全棧業務開發框架本身提供的特性,使得Cabloy-企業微信模塊具有以下兩個顯著的亮點:

1. PC、Mobile自適應

許多企業微信應用存在這樣一個問題:在Mobile端只能使用一部分功能,其他更多功能則需要登錄PC系統進行操作

而CabloyJS框架下的Cabloy-企業微信允許所有的業務功能同時支持PC和Mobile使用。同時又能保證以下兩點:

  1. 通過角色權限系統,控制不同用戶使用不同功能
  2. 前端頁面採用異步加載策略,從而適應大型項目的開發
  • Mobile端效果

在這裏插入圖片描述

  • PC端效果

在這裏插入圖片描述

2. 數據孤島

企業從不同服務提供商採購不同的企業微信應用,必然導致數據孤島的出現,而且這些數據散存在不同服務商的後臺,缺乏數據聯動與共享機制

而CabloyJS框架本身就是基於業務模塊構建的。企業自建的模塊或者使用第三方的模塊,都彙集在一個CabloyJS項目之中,並進行私有部署,從而從根本上解決了數據孤島的問題,不僅能實現數據聯動與共享,也可以更靈活的進行數據採集、處理和分析

歸根結底一句話,數據和程序都掌握在自己的手中

特性

基於CabloyJS全棧框架提供的便利性和靈活性,Cabloy-企業微信主要有如下特性:

1. 一站式整合

當前整合了企業微信自建應用企業微信小程序的接口,具體如下:

場景 名稱 說明
自建應用 消息推送系統 自動完成接口對接,並對用戶進行認證
自建應用 網頁登錄 自動跳轉微信登錄,並對用戶進行認證
自建應用 網頁JSSDK 自動注入JSSDK,並自動完成配置
小程序 後臺登錄接口 自動完成接口對接,並對用戶進行認證
小程序 前端SDK 提供SDK,便於企業微信小程序前端直接訪問CabloyJS後端API

2. 開箱即用

只需配置好企業微信賬號參數,所有接口自動完成對接

3. 多小程序支持

企業微信可以關聯多個企業微信小程序,因此,模塊也提供了多小程序支持

4. 多站點支持

通過CabloyJS提供的多實例特性,可以實現多站點支持,比如爲不同的企業提供企業微信服務。請參見:EggBornJS:多實例

參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章