趙旭華
(珠海城市職業(yè)技術(shù)學(xué)院,珠海519090)
MOODLE(Modular Object Oriented Dynamic Learning Environment)平臺是國際上較為流行的開源學(xué)習(xí)管理系統(tǒng)LMS(Learning Management System),意為模塊化面向?qū)ο蟮膭討B(tài)學(xué)習(xí)環(huán)境[1]。MOODLE 平臺以其開源著稱,據(jù)不完全統(tǒng)計全球有102504 個學(xué)習(xí)平臺基于MOODLE 平臺搭建,建有20910273 門課程,學(xué)習(xí)者達878597217 之多[2]。作為開源平臺,MOODLE 在全球得到了廣泛使用,但在中國基于MOODLE 建設(shè)的學(xué)習(xí)平臺只有468 個,究其原因一是MOODLE 平臺對使用者有一定的技術(shù)門檻要求,需要教師自行搭建而普通教師并不具備服務(wù)器安裝和MOODLE 平臺調(diào)試能力;二是MOODLE 平臺缺乏與國內(nèi)社交平臺的整合,難以通過微信等社交平臺開展課程教學(xué)從而影響了其廣泛傳播[3]?;诖耍狙芯繉腗OODLE 平臺與企業(yè)微信整合應(yīng)用為切入點,探究其整合應(yīng)用價值。
MOODLE 平臺自3.3 版本后已將OAUTH2 服務(wù)作為平臺的內(nèi)置服務(wù)以對外提供認證整合功能。OAUTH2 是開放認證(Open Authorization)的第二個版本,于2012 年10 月頒布,是應(yīng)用系統(tǒng)第三方登錄的工業(yè)標準[4]。MOODLE 平臺安裝并配置好OAUTH2 服務(wù)后,可在不需要提供用戶名和密碼的情況下授權(quán)允許第三方應(yīng)用授權(quán)訪問。OAUTH2 提供了四種模式的第三方應(yīng)用授權(quán),如表1 所示,四種模式各有自己適合的應(yīng)用場景。
表1 OAUTH2 授權(quán)模式表
企業(yè)微信是騰訊公司于2016 年4 月推出的一款針對企事業(yè)單位內(nèi)部使用的通信和辦公工具軟件,其使用成員由管理員進行管理并根據(jù)用戶權(quán)限進行相應(yīng)授權(quán)。與微信相比,企業(yè)微信因只限于內(nèi)部人員使用因而具備更好的安全性,已廣泛應(yīng)用于各類學(xué)校。企業(yè)微信的應(yīng)用體驗大致與微信相似,并在此基礎(chǔ)上提供了更豐富的應(yīng)用程序編程接口API(Application Programming Interface),能與各業(yè)務(wù)系統(tǒng)進行整合應(yīng)用,實現(xiàn)單點登錄、第三方消息推送等功能。
企業(yè)微信的API 接口分服務(wù)端API 和客戶端API兩類,服務(wù)端API 主要針對企業(yè)內(nèi)部應(yīng)用系統(tǒng)與企業(yè)微信的對接和集成,通過服務(wù)端API 接口,可以實現(xiàn)用戶同步、無感登錄、掃碼登錄、消息推送等功能[5]??蛻舳薃PI 主要面向微信小程序應(yīng)用,通過客戶端API 可開發(fā)出適合企業(yè)內(nèi)部場景的小程序,而且小程序可直接在企業(yè)微信上運行。本研究主要解決MOODLE 平臺的企業(yè)微信的整合,需要使用的是企業(yè)微信API接口。
在MOODLE 平臺的教學(xué)過程中,師生對MOODLE平臺的使用反饋問題最多的是下述的二個問題,一是MOODLE 平臺的登錄需使用其自有的帳號,不能使用學(xué)校統(tǒng)一身份認證系統(tǒng),多賬號易混淆和容易忘記;二是MOODLE 教學(xué)平臺是網(wǎng)頁版平臺,雖然也提供配套的App 但是App 的使用頻率和消息弱提醒不足以教師和學(xué)習(xí)者及時掌握課程動態(tài)。根據(jù)師生教學(xué)需求,MOODLE 教學(xué)平臺和企業(yè)微信的整合要實現(xiàn)掃碼登錄、消息推送功能,功能需求架構(gòu)如圖1 所示。
圖1 MOODLE與企業(yè)微信整合架構(gòu)圖
根據(jù)MOODLE 平臺與企業(yè)微信的整合框架圖中的整合內(nèi)容,本研究主要分成兩塊內(nèi)容的整合,一是企業(yè)微信掃碼登錄MOODLE,并視用戶是否存在進行與MOODLE 平臺帳號綁定或者新建MOODLE 賬號并綁定。二是根據(jù)消息類型進行推送,使教師和學(xué)習(xí)者實時掌握課程學(xué)習(xí)動態(tài)。
按照企業(yè)微信API 接口開發(fā)規(guī)范,要實現(xiàn)企業(yè)微信與MOODLE 教學(xué)平臺的整合可按以下步驟開發(fā)實現(xiàn):
(1)企業(yè)微信配置:開通企業(yè)微信,新建應(yīng)用,設(shè)置開發(fā)者應(yīng)用接口,將MOODLE 平臺網(wǎng)址加入到企業(yè)微信授權(quán)登錄中的授權(quán)回調(diào)域設(shè)置中。
(2)MOODLE 平臺配置:啟用OAUTH2 服務(wù),在OAUTH2 管理界面中添加新的第三方應(yīng)用服務(wù),WeChat,設(shè)置Client ID 和Client Secret 以及第三方驗證的基礎(chǔ)網(wǎng)頁Service Base URL,設(shè)置好應(yīng)用圖標后,開戶第三方登錄,即會在MOODLE 平臺登錄界面上顯示企業(yè)微信的登錄按鈕,操作界面如圖3 所示。如MOODLE 平臺版本低于3.3 也可安裝Oauth2 authentication plugin for MOODLE 插件,安裝后插件配置跟圖2類似,在此不再贅述。
圖2 MOODLE平臺添加企業(yè)微信第三方登錄服務(wù)
開發(fā)平臺采取廣泛使用LAMP(Linux Apache MySQL PHP)架構(gòu),在MOODLE 平臺根目錄的servermoodleauthoauth2 文件夾內(nèi)建立Wechat 目錄,目錄內(nèi)新建wechatlogin.php 和wechatmessage.php 等文件,分別處理企來微信登錄和消息推送業(yè)務(wù)。業(yè)務(wù)相關(guān)HTML 頁面及PHP 邏輯代碼均可寫在對應(yīng)文件內(nèi),實現(xiàn)相應(yīng)功能。
(3)企業(yè)微信掃碼登錄MOODLE 平臺實現(xiàn):上述準備工作就緒后,即可開展MOODLE 平臺與企業(yè)微信的整合工作,使用企業(yè)微信登錄MOODLE 平臺的流程如圖3 所示。
考慮到企業(yè)微信賬號都已實名認證是可信任的用戶,因此在設(shè)計時可根據(jù)用戶首次企業(yè)微信掃碼API返回的userid 信息對MOODLE 平臺賬號進行新建、綁定、解除綁定等操作,下次登錄時即可通過綁定的賬號信息直接進入MOODLE 平臺。
MOODLE 平臺自身的數(shù)據(jù)庫mdl_user 保留了MOODLE 平臺的賬號信息,為方便用綁定企業(yè)信息賬號,需在此數(shù)據(jù)表中添加wechat_userid 字段用來存儲企業(yè)微信中用戶的userid 信息。師生用戶通過企業(yè)微信掃碼后,即可通過https://qyapi.weixin.qq.com/cgi-bin/service/get_login_info?access_token=PROVIDER_AC-CESS_TOKEN 接口獲取userid 和username 等信息,將其與MOODLE 平臺中的username 進行匹配后,即可在PHP 邏輯處理中執(zhí)行update mdl_user set wechat_userid=‘“$userid”’where username=“$userid”’命令將企業(yè)微信帳號與MOODLE 賬號綁定。
圖3 使用企業(yè)微信登錄MOODLE平臺流程圖
(4)企業(yè)微信推送MOODLE 平臺消息實現(xiàn):MOODLE 平臺中的消息分課程消息和交流互動消息,課程消息和交流互動消息數(shù)據(jù)分別存放在mdl_event、mdl_forum_post 和mdl_chat_messages、mdl_message 數(shù)據(jù)表中。根據(jù)以上數(shù)據(jù)中的內(nèi)容,可設(shè)置定時執(zhí)行腳本,定時從數(shù)據(jù)庫獲取最新消息數(shù)據(jù),通過企業(yè)微信的API 接口推送至用戶,用戶可實時獲取課程消息和交流互動消息。
MOODLE 平臺通過企業(yè)微信發(fā)送消息的流程如圖4 所示。
圖4 MOODLE平臺調(diào)用企業(yè)微信API發(fā)送消息流程圖
企業(yè)微信的消息共有11 種類型,使用最多的一般是文本卡片消息,文本卡片消息可通過https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token 調(diào)用,調(diào)用時,構(gòu)造以下JSON 內(nèi)容即可發(fā)送消息給企業(yè)微信用戶。其中access_token 令通過以送get 請求https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET 獲得??ㄆSON 內(nèi)容模板如下:
MOODLE 平臺與企業(yè)微信的整合打通了兩平臺之間的數(shù)據(jù)孤島,通過OAUTH2 和企業(yè)微信API 接口將兩平臺有機結(jié)合,可充分利用各自的優(yōu)勢,在保障網(wǎng)絡(luò)安全的前提下能更好的服務(wù)于移動教學(xué),促進教學(xué)質(zhì)量的提升。
企業(yè)微信掃碼登錄MOODLE 平臺消除了多重賬號帶來的不利,師生用戶使用內(nèi)部嚴格認證的企業(yè)微信賬號掃描MOODLE 平臺生成的二維碼,在企業(yè)微信客戶端確認后即可登錄MOODLE 平臺(如圖5 所示),師生可隨時隨地開展移動教學(xué),實現(xiàn)了校園的統(tǒng)一身份認證。
利用企業(yè)微信服務(wù)端API 接口從MOODLE 平臺多個消息數(shù)據(jù)表中獲取消息,實時推送給師生,使學(xué)習(xí)活動和師生交互更為順暢(如圖6 所示)。教師發(fā)布學(xué)習(xí)活動后,學(xué)習(xí)者能及時收到通知開展學(xué)習(xí);各類消息的即時到達也使師生間的交流互動更為頻繁,師生關(guān)系更加密切,能有效促進課程教學(xué)。
MOODLE 平臺與企業(yè)微信的整合充分利用MOODLE 平臺的教學(xué)優(yōu)勢和企業(yè)微信安全社交性強的特點,消除了兩平臺之間的數(shù)據(jù)孤島現(xiàn)象。整合企業(yè)微信后的MOODLE 平臺后,能實現(xiàn)學(xué)校內(nèi)部企業(yè)微信掃碼單點登錄方便了師生的使用,各類課程消息及時通過企業(yè)微信推送至師生有助于更好地開展課程教學(xué),提升課程教學(xué)質(zhì)量。
圖5 企業(yè)微信掃碼確認登錄
圖6 企業(yè)微信推送MOODLE平臺課程消息