張哲
摘 要: 高校提供基于微信公眾號(hào)的校園數(shù)字服務(wù),其本意是為學(xué)生提供方便快捷的個(gè)性化服務(wù),但結(jié)果卻是各部門紛紛創(chuàng)建各自的公眾號(hào),互不關(guān)聯(lián),數(shù)目眾多,讓學(xué)生無(wú)所適從。通過UnionID機(jī)制,結(jié)合OAuth授權(quán),可以實(shí)現(xiàn)在多個(gè)公眾號(hào)之間互通,即:“一次注冊(cè),無(wú)限漫游;一次開發(fā),多處通用”,實(shí)現(xiàn)基于微信平臺(tái)的“服務(wù)門戶”的創(chuàng)建,方便學(xué)生獲取最新的數(shù)字服務(wù)。為在高校中合理有效地利用微信平臺(tái),開拓創(chuàng)新數(shù)字服務(wù)提供了一種新的思路。
關(guān)鍵詞: UnionID; 微信; OAuth; 服務(wù)門戶
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):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 引言
隨著近年來我國(guó)信息化建設(shè)快速的從PC互聯(lián)網(wǎng)服務(wù)向移動(dòng)互聯(lián)網(wǎng)演進(jìn),對(duì)高校信息化服務(wù)的方式與方法提出了更高的要求。
因此,高校在進(jìn)行數(shù)字化校園改建或擴(kuò)建之時(shí),紛紛提出了建設(shè)集約化“服務(wù)廣場(chǎng)”、“服務(wù)中心”[5]的理念,同時(shí)制定了向移動(dòng)互聯(lián)網(wǎng)遷移的建設(shè)目標(biāo),提出利用移動(dòng)終端作為移動(dòng)數(shù)字應(yīng)用服務(wù)的載體,在廣大師生群體中推廣。
隨著微信作為最大的移動(dòng)IM平臺(tái)的迅速崛起,以及微信公眾號(hào)的推出和功能的不斷完善,利用微信公眾號(hào)向廣大師生提供服務(wù),迅速成為高校移動(dòng)應(yīng)用服務(wù)的熱點(diǎn),實(shí)踐證明也大受學(xué)生歡迎。但隨著高校眾多公眾號(hào)的紛紛申請(qǐng)上線,隨之帶來的問題就是各項(xiàng)服務(wù)被分割至各個(gè)公眾號(hào)內(nèi),學(xué)生為了使用相關(guān)服務(wù)不得不去一一添加眾多公眾號(hào),并且逐一進(jìn)行身份認(rèn)證,這嚴(yán)重違背了原本以方便服務(wù)師生為目的開發(fā)初衷,也與學(xué)校建設(shè)“服務(wù)門戶”的理念相背離。
1 目前存在的問題
以微信公眾平臺(tái)為代表的lightAPP[4]類型的高校移動(dòng)數(shù)字應(yīng)用的快速崛起,反映出其模式貼合了廣大師生對(duì)方便快捷的移動(dòng)互聯(lián)網(wǎng)應(yīng)用服務(wù)的需求[1]。但是經(jīng)過一段時(shí)間的開發(fā)推廣,我們發(fā)現(xiàn)傳統(tǒng)的微信應(yīng)用模式有幾大弊端。
隨著微信公眾號(hào)申請(qǐng)認(rèn)證部門的不斷增加,學(xué)校里的公眾號(hào)數(shù)目也在同步劇增。以我校為例,僅進(jìn)行過騰訊官方認(rèn)證的公眾號(hào)就有22個(gè)之多,尚不包括數(shù)目眾多的由各二級(jí)學(xué)院、學(xué)生社團(tuán)所申請(qǐng)認(rèn)證的微信號(hào)。傳統(tǒng)的開發(fā)模式是基于各自申請(qǐng)的公眾號(hào)基礎(chǔ)上開發(fā)相關(guān)功能,造成各項(xiàng)服務(wù)被割裂在各自封閉的公眾帳號(hào)內(nèi),學(xué)生必須關(guān)注相關(guān)帳號(hào)方才能使用相關(guān)服務(wù),造成相當(dāng)不便。
由于大部份高校存在著多種身份認(rèn)證體系,有傳統(tǒng)的一卡通帳號(hào)認(rèn)證、學(xué)號(hào)密碼認(rèn)證、業(yè)務(wù)系統(tǒng)密碼認(rèn)證,也有近幾年興起的SSO認(rèn)證、手機(jī)號(hào)+短信密碼認(rèn)證等,各個(gè)公眾號(hào)帳號(hào)的認(rèn)證方式也隨之多樣化,造成了學(xué)生每關(guān)注一個(gè)公眾帳號(hào)均必須認(rèn)證一次,非常繁瑣。
2 利用UnionID機(jī)制解決問題
建立起一套“一次關(guān)注、單點(diǎn)綁定、全網(wǎng)漫游”的用戶認(rèn)證及組件共享機(jī)制,實(shí)現(xiàn)學(xué)校師生關(guān)注并綁定任意一個(gè)公眾號(hào),通過“微服務(wù)”平臺(tái)鏈接即可SSO免登錄進(jìn)入并獲取其他所有關(guān)聯(lián)公眾號(hào)的信息服務(wù),對(duì)于解決困擾目前高校微信開發(fā)所面臨的窘境顯得尤為必要。
2.1 基于微信UnionID的學(xué)校微平臺(tái)技術(shù)架構(gòu)
以我校為例,為了徹底解決微信公眾平臺(tái)開發(fā)的無(wú)序、混亂的情況,以學(xué)校數(shù)字化校園數(shù)據(jù)中心及統(tǒng)一身份認(rèn)證為核心,結(jié)合微信的UnionID機(jī)制,構(gòu)建起面向全校微信公眾號(hào)的微信服務(wù)平臺(tái)。
其整體技術(shù)架構(gòu)如圖1所示。
通過獲取用戶基本信息接口,開發(fā)者可通過OpenID來獲取用戶基本信息,如果開發(fā)者擁有多個(gè)公眾號(hào),可通過UnionID機(jī)制在多公眾號(hào)之間進(jìn)行用戶帳號(hào)互通。只要是同一個(gè)微信開放平臺(tái)帳號(hào)下的公眾號(hào),用戶的UnionID是惟一的。換句話說,同一用戶,對(duì)同一個(gè)微信開放平臺(tái)帳號(hào)下的不同應(yīng)用,UnionID是相同的。
而傳統(tǒng)微信開發(fā)中的OpenID機(jī)制,每個(gè)微信用戶對(duì)應(yīng)每個(gè)公眾號(hào)只有惟一的OpenID,所以不同微信公眾號(hào)之間是無(wú)法共享用戶的基本信息,而UnionID機(jī)制,則完美的解決了這個(gè)問題。
2.2 UnionID開發(fā)過程及實(shí)現(xiàn)
進(jìn)行基于微信UnionID機(jī)制開發(fā)必須經(jīng)過以下兩步。
第一步,注冊(cè)微信開放平臺(tái)http://open.weixin.qq.com/,并在管理界面綁定相關(guān)公眾帳號(hào)。
第二步,調(diào)用微信高級(jí)接口中的“獲取用戶基本信息”接口[2],獲得相關(guān)信息。
以我?!昂贾菘萍悸殬I(yè)技術(shù)學(xué)院圖書館”、“杭州科技職業(yè)技術(shù)學(xué)院”兩個(gè)微信號(hào)為例,對(duì)同一用戶的信息進(jìn)行獲取對(duì)比。接口調(diào)用返回值如下:
經(jīng)過仔細(xì)比對(duì),對(duì)同一用戶在不同公眾帳號(hào)下的openid是不一樣的,而unionid卻是一致的,這為打通全校公眾帳號(hào),實(shí)現(xiàn)帳號(hào)漫游打下了基礎(chǔ)。
2.3 結(jié)合OAuth授權(quán)機(jī)制[3],實(shí)現(xiàn)基于微信的服務(wù)門戶
通過 UnionID打通多個(gè)多眾號(hào)之間帳戶信息,當(dāng)用戶在提供“服務(wù)門戶”的公眾號(hào)中,點(diǎn)擊非關(guān)注公眾號(hào)提供的功能組件頁(yè)面,如果第三方公眾號(hào)已經(jīng)認(rèn)證并開通了網(wǎng)頁(yè)授權(quán)認(rèn)證接口,即OAuth機(jī)制,在登錄未關(guān)注公眾號(hào)的功能組件頁(yè)時(shí),會(huì)出現(xiàn)相關(guān)的應(yīng)用授權(quán)界面。其在微信上的顯示界面如圖2所示。
若用戶同意授權(quán),則第三方公眾號(hào)即可在取得網(wǎng)頁(yè)access_token的同時(shí),也同步獲取到了用戶的unionid。通過unionid,用微信提供的官方接口,就可獲得用戶的基本信息,完成使用第三方功能組件前的用戶身份認(rèn)證及基本信息獲取。
通過UnionID機(jī)制和OAuth授權(quán)機(jī)制,結(jié)合學(xué)校數(shù)據(jù)中心及統(tǒng)一身份認(rèn)證建設(shè),即可實(shí)現(xiàn)集成其他各公眾帳號(hào)功能組件的微信服務(wù)集成門戶。其最終展現(xiàn)結(jié)果如圖3所示。
3 結(jié)束語(yǔ)
本文介紹了微信UnionID機(jī)制的原理及開發(fā)流程,通過實(shí)例介紹并對(duì)比了傳統(tǒng)微信公眾號(hào)開發(fā)所使用的OpenID機(jī)制與UnionID機(jī)制的區(qū)別及不同。以我校微信服務(wù)集成門戶建設(shè)為例,介紹了通過UnionID機(jī)制并集成OAuth授權(quán)機(jī)制,來完成基于微信的服務(wù)集成門戶的建設(shè)。關(guān)于UnionID機(jī)制的應(yīng)用,本文僅研究了在微信公眾號(hào)開發(fā)方面的應(yīng)用。未來將進(jìn)一步研究如何將UnionID機(jī)制與高校數(shù)字化校園數(shù)據(jù)中心建設(shè)及校園門戶建設(shè)相整合,進(jìn)一步擴(kuò)展其應(yīng)用的領(lǐng)域和范圍。更多功能及優(yōu)化將在今后作進(jìn)一步研究。
參考文獻(xiàn)(References):
[1] 白浩,郝晶晶.微信公眾平臺(tái)在高校教育領(lǐng)域中的應(yīng)用研究[J].
中國(guó)教育信息化,2013.4:78
[2] 謝遠(yuǎn)超.微信公眾號(hào)信息服務(wù)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].中山大
學(xué)碩士學(xué)位論文,2014.
[3] 易偉.微信公眾平臺(tái)服務(wù)號(hào)開發(fā):揭秘九大高級(jí)接口[J].機(jī)械
工業(yè)出版社,2014.
[4] 盧勝男.基于微信公眾平臺(tái)的微型移動(dòng)課程的設(shè)計(jì)與研究[D].
上海師范大學(xué)碩士學(xué)位論文,2014.
[5] 夏凌云,韓立峰,王長(zhǎng)慶.利用微信公眾平臺(tái)打造校園信息移
動(dòng)發(fā)布平臺(tái)[J].信息技術(shù),2014.2:183