張哲
摘 要: 高校提供基于微信公眾號的校園數字服務,其本意是為學生提供方便快捷的個性化服務,但結果卻是各部門紛紛創建各自的公眾號,互不關聯,數目眾多,讓學生無所適從。通過UnionID機制,結合OAuth授權,可以實現在多個公眾號之間互通,即:“一次注冊,無限漫游;一次開發,多處通用”,實現基于微信平臺的“服務門戶”的創建,方便學生獲取最新的數字服務。為在高校中合理有效地利用微信平臺,開拓創新數字服務提供了一種新的思路。
關鍵詞: UnionID; 微信; OAuth; 服務門戶
中圖分類號:TP391 文獻標志碼:A 文章編號:1006-8228(2015)11-19-03
Abstract: Universities to provide the digital campus services based on Wechat public numbers, the intention is to provide convenient and individualized service for students, but is the result of various departments have created their own public numbers, a large number of and unrelated each other, let students at a loss. Through the UnionID mechanism, combined with OAuth authorization, interoperability between multiple public numbers can be achieved, that is: "once registration, unlimited roaming; once development, multiple applying", and a Wechat platform based "service portal" can be created to facilitate students to obtain the latest digital services, which provides a new way for the development of Wechat platform in universities.
Key words: UnionID; Wechat; OAuth; service portal
0 引言
隨著近年來我國信息化建設快速的從PC互聯網服務向移動互聯網演進,對高校信息化服務的方式與方法提出了更高的要求。
因此,高校在進行數字化校園改建或擴建之時,紛紛提出了建設集約化“服務廣場”、“服務中心”[5]的理念,同時制定了向移動互聯網遷移的建設目標,提出利用移動終端作為移動數字應用服務的載體,在廣大師生群體中推廣。
隨著微信作為最大的移動IM平臺的迅速崛起,以及微信公眾號的推出和功能的不斷完善,利用微信公眾號向廣大師生提供服務,迅速成為高校移動應用服務的熱點,實踐證明也大受學生歡迎。但隨著高校眾多公眾號的紛紛申請上線,隨之帶來的問題就是各項服務被分割至各個公眾號內,學生為了使用相關服務不得不去一一添加眾多公眾號,并且逐一進行身份認證,這嚴重違背了原本以方便服務師生為目的開發初衷,也與學校建設“服務門戶”的理念相背離。
1 目前存在的問題
以微信公眾平臺為代表的lightAPP[4]類型的高校移動數字應用的快速崛起,反映出其模式貼合了廣大師生對方便快捷的移動互聯網應用服務的需求[1]。但是經過一段時間的開發推廣,我們發現傳統的微信應用模式有幾大弊端。
隨著微信公眾號申請認證部門的不斷增加,學校里的公眾號數目也在同步劇增。以我校為例,僅進行過騰訊官方認證的公眾號就有22個之多,尚不包括數目眾多的由各二級學院、學生社團所申請認證的微信號。傳統的開發模式是基于各自申請的公眾號基礎上開發相關功能,造成各項服務被割裂在各自封閉的公眾帳號內,學生必須關注相關帳號方才能使用相關服務,造成相當不便。
由于大部份高校存在著多種身份認證體系,有傳統的一卡通帳號認證、學號密碼認證、業務系統密碼認證,也有近幾年興起的SSO認證、手機號+短信密碼認證等,各個公眾號帳號的認證方式也隨之多樣化,造成了學生每關注一個公眾帳號均必須認證一次,非常繁瑣。
2 利用UnionID機制解決問題
建立起一套“一次關注、單點綁定、全網漫游”的用戶認證及組件共享機制,實現學校師生關注并綁定任意一個公眾號,通過“微服務”平臺鏈接即可SSO免登錄進入并獲取其他所有關聯公眾號的信息服務,對于解決困擾目前高校微信開發所面臨的窘境顯得尤為必要。
2.1 基于微信UnionID的學校微平臺技術架構
以我校為例,為了徹底解決微信公眾平臺開發的無序、混亂的情況,以學校數字化校園數據中心及統一身份認證為核心,結合微信的UnionID機制,構建起面向全校微信公眾號的微信服務平臺。
其整體技術架構如圖1所示。
通過獲取用戶基本信息接口,開發者可通過OpenID來獲取用戶基本信息,如果開發者擁有多個公眾號,可通過UnionID機制在多公眾號之間進行用戶帳號互通。只要是同一個微信開放平臺帳號下的公眾號,用戶的UnionID是惟一的。換句話說,同一用戶,對同一個微信開放平臺帳號下的不同應用,UnionID是相同的。
而傳統微信開發中的OpenID機制,每個微信用戶對應每個公眾號只有惟一的OpenID,所以不同微信公眾號之間是無法共享用戶的基本信息,而UnionID機制,則完美的解決了這個問題。
2.2 UnionID開發過程及實現
進行基于微信UnionID機制開發必須經過以下兩步。
第一步,注冊微信開放平臺http://open.weixin.qq.com/,并在管理界面綁定相關公眾帳號。
第二步,調用微信高級接口中的“獲取用戶基本信息”接口[2],獲得相關信息。
以我校“杭州科技職業技術學院圖書館”、“杭州科技職業技術學院”兩個微信號為例,對同一用戶的信息進行獲取對比。接口調用返回值如下:
經過仔細比對,對同一用戶在不同公眾帳號下的openid是不一樣的,而unionid卻是一致的,這為打通全校公眾帳號,實現帳號漫游打下了基礎。
2.3 結合OAuth授權機制[3],實現基于微信的服務門戶
通過 UnionID打通多個多眾號之間帳戶信息,當用戶在提供“服務門戶”的公眾號中,點擊非關注公眾號提供的功能組件頁面,如果第三方公眾號已經認證并開通了網頁授權認證接口,即OAuth機制,在登錄未關注公眾號的功能組件頁時,會出現相關的應用授權界面。其在微信上的顯示界面如圖2所示。
若用戶同意授權,則第三方公眾號即可在取得網頁access_token的同時,也同步獲取到了用戶的unionid。通過unionid,用微信提供的官方接口,就可獲得用戶的基本信息,完成使用第三方功能組件前的用戶身份認證及基本信息獲取。
通過UnionID機制和OAuth授權機制,結合學校數據中心及統一身份認證建設,即可實現集成其他各公眾帳號功能組件的微信服務集成門戶。其最終展現結果如圖3所示。
3 結束語
本文介紹了微信UnionID機制的原理及開發流程,通過實例介紹并對比了傳統微信公眾號開發所使用的OpenID機制與UnionID機制的區別及不同。以我校微信服務集成門戶建設為例,介紹了通過UnionID機制并集成OAuth授權機制,來完成基于微信的服務集成門戶的建設。關于UnionID機制的應用,本文僅研究了在微信公眾號開發方面的應用。未來將進一步研究如何將UnionID機制與高校數字化校園數據中心建設及校園門戶建設相整合,進一步擴展其應用的領域和范圍。更多功能及優化將在今后作進一步研究。
參考文獻(References):
[1] 白浩,郝晶晶.微信公眾平臺在高校教育領域中的應用研究[J].
中國教育信息化,2013.4:78
[2] 謝遠超.微信公眾號信息服務平臺的設計與實現[D].中山大
學碩士學位論文,2014.
[3] 易偉.微信公眾平臺服務號開發:揭秘九大高級接口[J].機械
工業出版社,2014.
[4] 盧勝男.基于微信公眾平臺的微型移動課程的設計與研究[D].
上海師范大學碩士學位論文,2014.
[5] 夏凌云,韓立峰,王長慶.利用微信公眾平臺打造校園信息移
動發布平臺[J].信息技術,2014.2:183