常漢杰 付賽紅
摘要:隨著智能手機(jī)的不斷普及和微信使用者不斷增加,以微信作為移動教學(xué)平臺基礎(chǔ),通過對公眾平臺的深度開發(fā)使學(xué)習(xí)者所需的學(xué)習(xí)功能在公眾平臺中能夠得以實現(xiàn)。該文主要論述如何將需要提供給學(xué)習(xí)者的學(xué)習(xí)功能和微信相結(jié)合,從而搭建自己基于微信的移動學(xué)習(xí)平臺。
關(guān)鍵詞:微信;公眾平臺;移動教學(xué);LAMP
中圖分類號:TP393? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)19-0067-03
Abstract: With the popularization of intelligent mobile phone and WeChat users continue to increase, with WeChat as a basis for mobile learning platform, through the depth of the development of the public platform to make learners required learning function can be achieved in the public platform. This paper mainly discusses how to combine the learning function that needs to be provided to the learners, and to build up their own mobile learning platform based on WeChat.
Key words: WeChat; public platform; mobile teaching; LAMP
1 緒論
移動學(xué)習(xí)是一種在移動設(shè)備幫助下的能夠在任何時間、任何地點發(fā)生的學(xué)習(xí),移動學(xué)習(xí)所使用的移動計算設(shè)備必須能夠有效地呈現(xiàn)學(xué)習(xí)內(nèi)容并且提供教師與學(xué)習(xí)者之間的雙向交流。移動設(shè)備主要包含了智能手機(jī)和各類PAD等智能終端,目前基于這些智能終端進(jìn)行移動教學(xué)平臺開發(fā)的軟件開發(fā)方式主要可分為了APP開發(fā)和微信公眾平臺開發(fā)。這兩者之間各有優(yōu)缺點,本文主要介紹通過微信公眾平臺的開發(fā)方式。
1.1 微信的優(yōu)勢
微信是一款跨平臺的通訊工具,支持單人、多人參與,通過手機(jī)網(wǎng)絡(luò)發(fā)送語音、圖片、視頻和文字。目前微信的使用人數(shù)據(jù)最新統(tǒng)計已經(jīng)有9億多了,幾乎人人都已擁有微信號,微信已成為目前國內(nèi)使用人數(shù)最多的移動端IM聊天工具和社交軟件。
1.2 公眾號
微信公眾號內(nèi)植于微信的社交環(huán)境下,導(dǎo)流和呈現(xiàn)的成本大大低于傳統(tǒng)意義上的APP,因而產(chǎn)生了對后者的替代效應(yīng)。微信公眾號對開發(fā)者開放了開發(fā)功能,開發(fā)者只需關(guān)注在公眾號上的功能開發(fā),然后讓用戶關(guān)注即可。這樣,公眾號的開發(fā)儼然類似于開發(fā)APP軟件,而微信則已類似于一個新的桌面系統(tǒng)。
1.3 開發(fā)工具
本文所介紹的系統(tǒng)采用的開發(fā)工具是基于LAMP(Linux+Apache+Mysql+PHP)架構(gòu),在與微信的接口關(guān)系上是按照微信的開發(fā)標(biāo)準(zhǔn),內(nèi)置網(wǎng)頁的前端設(shè)計主要是基于HTML5、Jquery和Bootstrap,課件點播技術(shù)是基于阿里云的CDN網(wǎng)絡(luò)和相應(yīng)的OSS數(shù)據(jù)存儲結(jié)構(gòu)。
2 移動教學(xué)平臺所需功能
教學(xué)平臺的“移動化”主要是針對傳統(tǒng)PC系統(tǒng)的“非移動”而言的,主要的優(yōu)點體現(xiàn)在可以自由自在、隨時隨地進(jìn)行不同目的、不同方式的學(xué)習(xí)。移動化的學(xué)習(xí)方式是參與學(xué)習(xí)的主體者在通過使用移動端設(shè)備在學(xué)習(xí)環(huán)境的選擇上更加自由和靈活。
根據(jù)移動學(xué)習(xí)的特點,本系統(tǒng)開發(fā)主要功能包括了:資料閱讀、信息推送、教學(xué)互動、作業(yè)練習(xí)、課件點播和個性通知等。
基于微信的移動教學(xué)平臺就是能將上述的幾個學(xué)習(xí)功能通過使用微信公眾平臺的開發(fā)功能,在公眾平臺內(nèi)實現(xiàn)。
3 系統(tǒng)設(shè)計
3.1 開發(fā)準(zhǔn)備
3.1.1 接入微信公眾號
在成為微信開發(fā)者后需要填寫服務(wù)器地址(URL)、Token和EncodingAESKey。URL地址是自己服務(wù)器的一個網(wǎng)頁地址,其作用是將你的服務(wù)器和微信相連,起到了紐帶作用。Token的作用是生成簽名而驗證安全性。
3.1.2 獲取access_token
access_token是公眾號的全局唯一接口調(diào)用憑證,公眾號中調(diào)用的任何一個接口都需要獲取access_token,獲取access_token需要提供公眾號的APP_ID和AppSecret。其調(diào)用地址為:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET。微信為了安全性在獲取access_token中增加了有效性限制和調(diào)用頻率的限制,所以在系統(tǒng)中需要增加中控服務(wù)器用于定時獲取access_token。
3.1.3 創(chuàng)建個性化菜單
一個公眾號需要創(chuàng)建一些菜單從而使學(xué)習(xí)者能夠清楚自己需要的功能在哪里獲取。微信公眾號中將菜單的呈現(xiàn)通過JSON的數(shù)據(jù)格式來包裝,然后通過一個POST調(diào)用傳送至微信服務(wù)器。示例如下:
3.2 功能實現(xiàn)
3.2.1 身份綁定
學(xué)習(xí)者在學(xué)習(xí)平臺上的唯一號,一般是學(xué)號或者是用戶名,然而微信也有一個唯一號,被稱為OpenID,不管用戶使用了哪一臺設(shè)備登錄微信,他所對應(yīng)的OpenID號都是唯一的。所以,首先需要將OpenID號和學(xué)號實施綁定,這樣用戶以后打開這個公眾號后系統(tǒng)就能自動判斷出是哪一位學(xué)生了。
這里的Url字段就是你設(shè)計好的一張綁定頁面,用戶點擊這條信息后將跳轉(zhuǎn)到該網(wǎng)頁中,相應(yīng)的OpenID值可以通過參數(shù)傳遞,也可以通過session等方式進(jìn)行傳遞到該網(wǎng)頁中。
身份綁定的第二種方法是通過網(wǎng)頁授權(quán),其實現(xiàn)機(jī)制是利用OAuth2.0進(jìn)行鑒權(quán)。設(shè)計方法是,在用戶點擊菜單時直接讓其跳轉(zhuǎn)到微信的OAuth頁面上,如:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://yourhostname/callback.php&response_type=code&scope=snsapi_base&state=1#wechat_redirect。這里采用的是以snsapi_base為scope發(fā)起的網(wǎng)頁授權(quán),是用來獲取進(jìn)入頁面的用戶的OpenID的,并且是靜默授權(quán)并自動跳轉(zhuǎn)到回調(diào)頁的,用戶感知的就是直接進(jìn)入了回調(diào)頁,回調(diào)頁面就是redirect_uri參數(shù)。
在回調(diào)頁面中可以獲取一個code值,通過code換取到一個特殊的網(wǎng)頁授權(quán)access_token,然后將code值和相應(yīng)的數(shù)據(jù)發(fā)送至如下地址,便能獲取到OpenID值了,https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code。返回的是一個json數(shù)據(jù)包,直接讀取openid字段即可。
3.2.2 教學(xué)互動
微信中的教學(xué)互動比在傳統(tǒng)的PC端中就更加有效了,除了在學(xué)習(xí)平臺里可以設(shè)計傳統(tǒng)的課程論壇,學(xué)生有問題時在論壇中發(fā)帖,老師需要登錄后才能進(jìn)行回帖。但當(dāng)學(xué)生急需老師的回答時,課程論壇的時效性限制了這一功能。
微信公眾號中的客服功能便能做到上述的要求,實現(xiàn)如下:
通過GET此URL可以獲取老師列表和相應(yīng)的客服狀態(tài),https://api.weixin.qq.com/cgi-bin/customservice/getonlinekflist?access_token=ACCESS_TOKEN。
在列表中點擊相應(yīng)的教師,便可以在公眾號的輸入狀態(tài)下直接輸入相應(yīng)的問題進(jìn)行咨詢。后臺只需要將該用戶的請求通過發(fā)送如下xml包。
3.2.3 個性化通知
微信中最常用的一個功能便是信息推送,但信息推送只能便每個人看到的信息是一模一樣的,并且還有推送頻率的限制規(guī)定。在實際應(yīng)用中,其時整班學(xué)生在一起學(xué)習(xí)的過程中,他們的學(xué)習(xí)習(xí)慣和學(xué)習(xí)進(jìn)度都是有著個體差異的。如在某個時候可能需要提醒同學(xué)們需要完成哪些作業(yè),但是同學(xué)們的完成進(jìn)步不一,所以一定要使用個性化的通知,同樣也包括了成績和繳費(fèi)通知等等。
為了完成上述需求,主要是用到了微信中的模板消息接口,具體流程如下:
1)從模板庫中找到相應(yīng)的模板添加到我的模板中;
2)根據(jù)需要發(fā)送的模板消息中的data部分設(shè)置好相應(yīng)的數(shù)據(jù) ;
3)然后將發(fā)送的數(shù)據(jù)進(jìn)行封裝成json數(shù)據(jù),PHP示例如下:
最后將數(shù)據(jù)POST至https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN。其中template_id為模板的id號,touser則是用戶的openid號,data則是需要發(fā)送的具體內(nèi)容,按照模板內(nèi)容結(jié)構(gòu)填好。
4)老師需要發(fā)送上述模板消息時,只要將相應(yīng)消息按照模板結(jié)構(gòu)寫入excel中,然后導(dǎo)入至平臺中,平臺便可以通過逐條讀取并發(fā)送,從而完成一次個性化的通知需求。
3.2.4 課件點播
課件點播是移動學(xué)習(xí)平臺中主要的一個功能,當(dāng)用戶點擊相應(yīng)的課程后則顯示給用戶一張相應(yīng)的課件點播列表。這其實時就是顯示了一個移動版網(wǎng)頁,當(dāng)然這個網(wǎng)頁上已經(jīng)獲取到了相應(yīng)的openid,能夠判斷出用戶能否具有點播相應(yīng)的課件資源的權(quán)限。
在移動端的網(wǎng)頁設(shè)計本系統(tǒng)采用了HTML5+Bootstrap,因為bootstrap具有響應(yīng)式開發(fā)布局和移動設(shè)備優(yōu)先的性能。課件存儲采用了阿里云的對象存儲(Object Storage Service,簡稱OSS),OSS具有海量存儲和高可靠性的非結(jié)構(gòu)化存儲,只需要將相應(yīng)的課件存儲至OSS中對應(yīng)的Bucket即可。為了實現(xiàn)課件在播放的一些拖拽功能,在課件發(fā)布時需要將課件信息分發(fā)至CDN(Content Delivery Network)網(wǎng)絡(luò)上。
4 移動教學(xué)平臺的改進(jìn)和展望
本系統(tǒng)已經(jīng)在我校上線運(yùn)行了一段時間,系統(tǒng)運(yùn)行情況良好,響應(yīng)速度較快,以前學(xué)生需要在PC端完成的任務(wù)現(xiàn)在可以在微信中就可以完成,系統(tǒng)的實際應(yīng)用情況也符合當(dāng)初的設(shè)計要求。但在實際應(yīng)用過程中,也發(fā)現(xiàn)了一些需要進(jìn)一步開發(fā)的和完善的功能。
1) 用模板消息功能替代傳統(tǒng)的短消息功能,模板消息實現(xiàn)了個性化的消息發(fā)送,當(dāng)然也可以發(fā)送類似于短信的內(nèi)容。隨著同學(xué)們都關(guān)注我校微信平臺后,使用模板消息發(fā)送替換短信發(fā)送已成為可能。
2) 微信快照功能。當(dāng)學(xué)生在學(xué)校公眾號中學(xué)習(xí)和觀看課件時,突然有朋友發(fā)來消息并點擊閱讀后,學(xué)生再次返回到上次的學(xué)習(xí)頁面中則比較煩瑣,如有一個微信快照功能,實現(xiàn)一鍵返回到原有觀看頁面。
3) 人工智能的使用。任何一個學(xué)習(xí)者在學(xué)習(xí)上都存在著惰性,如何設(shè)計出一個人性化的學(xué)習(xí)系統(tǒng),當(dāng)用戶沒能及時完成相關(guān)學(xué)習(xí)需求后,系統(tǒng)能自動的給學(xué)習(xí)者發(fā)出一條學(xué)習(xí)提醒消息。
參考文獻(xiàn):
[1] 馬艷艷. 我國微課程研究現(xiàn)狀述評[J]. 軟件導(dǎo)刊, 2014(3): 197-199.
[2] 王竹立, 李小玉. 智能手機(jī)與“互聯(lián)網(wǎng)+”課堂[J]. 遠(yuǎn)程教育雜志, 2015(4): 14-21.
[3] 王朋嬌, 蔡宇南, 段婷婷. 微信功能包支持下的移動學(xué)習(xí)活動設(shè)計[J]. 現(xiàn)代遠(yuǎn)距離教育, 2015(1): 35-40.
[4] 王鍵, 曹偉. 微信在移動學(xué)習(xí)中的應(yīng)用研究[J]. 軟件導(dǎo)刊, 2015(10): 196-198.
[5] 龐博, 王朋嬌. 微信在大學(xué)英語移動學(xué)習(xí)中的應(yīng)用探索[J]. 中國信息技術(shù)教育, 2015(1): 112-113.
【通聯(lián)編輯:謝媛媛】