薛艷鋒+高文蓮+王三虎
摘要:全國(guó)大學(xué)英語(yǔ)等級(jí)考試(CET)是教育部針對(duì)在校大學(xué)生每學(xué)期組織的一項(xiàng)全國(guó)性英語(yǔ)考試,然而因準(zhǔn)考證號(hào)遺忘導(dǎo)致考生無法在線查詢成績(jī)的現(xiàn)象時(shí)有發(fā)生。雖然部分應(yīng)用軟件通過選填所在學(xué)校信息可以彌補(bǔ)這一缺陷,但在相同學(xué)校相同姓名的情況下查詢無效。針對(duì)這種情況,設(shè)計(jì)了一種CET成績(jī)定制化查詢系統(tǒng)。領(lǐng)取準(zhǔn)考證后在微信公眾平臺(tái)進(jìn)行成績(jī)定制,成績(jī)揭曉后系統(tǒng)第一時(shí)間通過微信公眾平臺(tái)以及手機(jī)短信推送對(duì)應(yīng)成績(jī)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)不僅可以準(zhǔn)確推送成績(jī)結(jié)果,而且容易擴(kuò)展到其它類似應(yīng)用場(chǎng)景。
關(guān)鍵詞:微信公眾平臺(tái);定制化;定時(shí)任務(wù);模板消息;網(wǎng)頁(yè)抓取
DOIDOI:10.11907/rjdk.171145
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2017)006-0070-04
0 引言
全國(guó)大學(xué)英語(yǔ)等級(jí)考試(College English Test Band 4 and Band 6,CET)是教育部針對(duì)高校大學(xué)生每學(xué)期舉辦的一項(xiàng)全國(guó)性考試??荚嚱Y(jié)束兩個(gè)月后,官網(wǎng)提供3個(gè)查詢?nèi)肟冢?9宿舍網(wǎng)[1]、中國(guó)高等教育學(xué)生信息網(wǎng)(學(xué)信網(wǎng))[2]以及教育部考試中心綜合查詢網(wǎng)[3]。一些應(yīng)用軟件如支付寶及微信公眾平臺(tái)也提供類似查詢功能,但數(shù)據(jù)源都來自上述官網(wǎng),查詢必填準(zhǔn)考證號(hào)。然而在查詢時(shí),考生常常因?yàn)橥洔?zhǔn)考證號(hào)而無法查詢,一些應(yīng)用軟件提供了補(bǔ)填所在學(xué)校信息以解決這一問題,但效果不佳。因考生人數(shù)眾多,如果有同名同姓出現(xiàn)則查詢失敗。
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,智慧校園[4]興起,微信公眾平臺(tái)在大學(xué)圖書館 [5-6]、信息服務(wù) [7]以及學(xué)習(xí)等方面的應(yīng)用[8]層出不窮。微信公眾平臺(tái)作為騰訊公司在微信基礎(chǔ)上的新增功能模塊[9],運(yùn)營(yíng)者可按照開發(fā)接口規(guī)范設(shè)計(jì)與實(shí)現(xiàn)滿足特定功能的微信公眾號(hào),即移動(dòng)應(yīng)用系統(tǒng),而用戶可在微信客戶端關(guān)注該公眾號(hào)與系統(tǒng)互動(dòng)。
該系統(tǒng)的主要功能與RSS的定制推送功能[10]類似,使用過程為:用戶前期通過準(zhǔn)考證號(hào)與姓名進(jìn)行成績(jī)定制,等成績(jī)公布后,通過微信公眾平臺(tái)以及驗(yàn)證碼對(duì)應(yīng)手機(jī)號(hào)自動(dòng)收取定制成績(jī),從而保證考試信息只需輸入一次就能及時(shí)得到成績(jī),改變了過去被動(dòng)查詢局面,擴(kuò)展并具體化RSS推送內(nèi)容。
1 相關(guān)技術(shù)介紹
1.1 WeUI頁(yè)面基礎(chǔ)樣式庫(kù)
為了與微信原生視覺體驗(yàn)一致,使用戶的感知統(tǒng)一,本文選擇微信公眾平臺(tái)提供的WeUI頁(yè)面基礎(chǔ)樣式庫(kù)[11]開發(fā)成績(jī)定制及查詢結(jié)果頁(yè)面。
1.2 JQuery
jQuery是一個(gè)快速、簡(jiǎn)潔的JavaScript框架,其設(shè)計(jì)宗旨為“Write Less,Do More”,即“寫得少,做得多”[12]。它不僅封裝JavaScript常用的功能代碼,提供一種簡(jiǎn)便的JavaScript設(shè)計(jì)模式,而且優(yōu)化了HTML文檔操作、事件處理、動(dòng)畫設(shè)計(jì)和Ajax交互,并與WeUI頁(yè)面基礎(chǔ)樣式庫(kù)交互良好。
1.3 openid
用戶與微信公眾號(hào)交互后,公眾號(hào)可以設(shè)置網(wǎng)頁(yè)授權(quán)并通過獲取用戶基本信息接口得到用戶openid。該openid是微信加密后的微信號(hào),是公眾號(hào)區(qū)分用戶的重要憑證[13]。
1.4 定時(shí)任務(wù)
定時(shí)任務(wù)[14]是新浪云推出的一項(xiàng)定期以HTTP方式觸發(fā)執(zhí)行后臺(tái)程序的服務(wù),定期清理和備份數(shù)據(jù)庫(kù)表中的數(shù)據(jù)、發(fā)送郵件通知等,觸發(fā)后執(zhí)行應(yīng)用中定義的 HTTP 回調(diào)函數(shù)。
1.5 模板消息
模板消息[15]指主動(dòng)提醒、通知用戶時(shí),在公眾平臺(tái)網(wǎng)站模板消息庫(kù)中選擇對(duì)應(yīng)模板,再根據(jù)模板ID向用戶主動(dòng)推送提醒、通知消息的一種服務(wù)。如果模板消息庫(kù)沒有對(duì)應(yīng)模板,可按照模板填寫規(guī)則申請(qǐng)?jiān)O(shè)計(jì)模板消息[16],等審核通過后即可使用。
1.6 來信碼
2012年BechTech推出來信碼,2015年1月整合IM功能,是一款專注開發(fā)者的短信API服務(wù)平臺(tái)[17]。通過它可以進(jìn)行信息驗(yàn)證、發(fā)送通知消息,理論信息到達(dá)率達(dá)100%。
1.7 網(wǎng)頁(yè)數(shù)據(jù)抓取
網(wǎng)頁(yè)數(shù)據(jù)抓取是通過某一種機(jī)制獲取網(wǎng)頁(yè)數(shù)據(jù)的過程[18]。本文通過PHP編程語(yǔ)言的cURL函數(shù)[19]模擬登陸學(xué)信網(wǎng),利用simple_html_dom功能將數(shù)據(jù)從HTML標(biāo)記符中抽離出來,再打包成JSON格式的數(shù)據(jù)返回。
2 功能實(shí)現(xiàn)
本系統(tǒng)開發(fā)的所有服務(wù)都是基于新浪推出的公有云計(jì)算平臺(tái)Sina App Engine(SAE)或與SAE有合作關(guān)系的第三方服務(wù),具體使用服務(wù)如表1所示。
2.1 openid獲取
本系統(tǒng)通過微信網(wǎng)頁(yè)授權(quán)機(jī)制獲取微信用戶openid,具體流程為配置回調(diào)頁(yè)面域名,用戶授權(quán)并獲取code,通過code換取網(wǎng)頁(yè)授權(quán)access_token,獲取的數(shù)據(jù)為JSON數(shù)據(jù)包形式[21],其中包含openid鍵值對(duì)。JSON數(shù)據(jù)包如下所示:
2.2 查詢頁(yè)面定制
本系統(tǒng)的成績(jī)定制頁(yè)面采用WeUI頁(yè)面基礎(chǔ)樣式庫(kù)中部分表單頁(yè)面,如圖2所示。當(dāng)輸入手機(jī)號(hào)點(diǎn)擊“獲取驗(yàn)證碼”時(shí),調(diào)用JQuery框架的$.getJSON( )方法獲取驗(yàn)證碼,讀取手機(jī)號(hào)對(duì)應(yīng)文本框的值,然后賦值給phoneInput以參數(shù)形式傳遞給getVcode.php頁(yè)面,getVcode.php頁(yè)面獲取手機(jī)號(hào)碼之后首先動(dòng)態(tài)生成由4位數(shù)字字符組成的驗(yàn)證碼;然后以URL模擬登陸[18]的方式,將其推送給對(duì)應(yīng)的手機(jī)號(hào)并返回給回調(diào)函數(shù)參數(shù)data;再賦值給全局變量vcode以匹配用戶驗(yàn)證碼是否正確,一致則匹配成功;最后點(diǎn)擊“確定”按鈕通過Ajax方法以“POST”方式提交表單給getCET.php頁(yè)面。提交字段包括考生姓名、準(zhǔn)考證號(hào)、openid以及手機(jī)號(hào)。其中使用的$.getJSON( )方法代碼如下:
因?yàn)槭盏侥0逡?guī)則數(shù)限制(最多5條),所以除了這5條規(guī)則數(shù)據(jù)對(duì)應(yīng)顯示外,其它數(shù)據(jù)合并在{{first.DATA}}之內(nèi),即{考生姓名}.“您好,”.{考試日期} .“全國(guó)大學(xué)”.{考試級(jí)別} .“成績(jī)現(xiàn)已揭曉,請(qǐng)查收!”,而{{remark.DATA}}照搬學(xué)信網(wǎng)提示“注:最終結(jié)果請(qǐng)以《成績(jī)報(bào)告單》為準(zhǔn)?!保欢ㄟ^URL模擬登陸調(diào)用來信碼接口發(fā)送內(nèi)容模板如下所示:“{字符}您好,您{字符}CET考試成績(jī)單已經(jīng)發(fā)送。學(xué)校名稱:{字符};考試級(jí)別:{字符};總成績(jī):{數(shù)字},其中聽力:{數(shù)字}、閱讀:{數(shù)字}、寫作與翻譯:{數(shù)字}?!局瞧铡俊?。
3 實(shí)驗(yàn)仿真
因?yàn)槊磕闏ET次數(shù)僅為2次,且成績(jī)公布周期較長(zhǎng),所以實(shí)驗(yàn)結(jié)果采用仿真方法,定制2016年6月全國(guó)大學(xué)英語(yǔ)等級(jí)成績(jī)。首先點(diǎn)擊微信公眾號(hào)下拉菜單彈出CET定制查詢頁(yè)面,如圖2所示,輸入對(duì)應(yīng)信息通過驗(yàn)證規(guī)則后,點(diǎn)擊“確定”按鈕。如果信息正確則跳轉(zhuǎn)到查詢成功頁(yè)面,進(jìn)入CET查詢系統(tǒng);假設(shè)在2016年6月輸入相同信息,由于成績(jī)未公布,則在CET定制系統(tǒng)得到定制成功提示頁(yè)面,如圖3所示。
定制成功后,啟動(dòng)定時(shí)任務(wù)程序,只要學(xué)信網(wǎng)支持成績(jī)查詢,則微信用戶與手機(jī)用戶在第一時(shí)間都可收到如圖4、圖5所示的CET成績(jī)通知,系統(tǒng)完成CET定制成績(jī)的及時(shí)推送。
4 結(jié)語(yǔ)
智慧校園高校建設(shè)[23]步伐加快為本文系統(tǒng)實(shí)施提供了很好的條件。本系統(tǒng)提供的成績(jī)定制化服務(wù)不僅用于CET成績(jī)查詢,還可擴(kuò)展到普通話、全國(guó)計(jì)算機(jī)等級(jí)考試以及期末考試等成績(jī)查詢定制服務(wù)中,如果顯示結(jié)果內(nèi)容過多,則可通過“模板消息”點(diǎn)擊“詳情”進(jìn)一步顯示,也可通過新浪推出的“云郵件”功能進(jìn)行郵件推送[24],從被動(dòng)查詢過渡到主動(dòng)接收。
參考文獻(xiàn):
[1]99宿舍網(wǎng)[EB/OL].[2016-11-15].http://cet.99sushe.com/.
[2]中國(guó)高等教育學(xué)生信息網(wǎng).[2016-11-15].http://www.chsi.com.cn/cet/
[3]教育部考試中心綜合查詢網(wǎng).[2016-11-15].http://chaxun.neea.edu.cn/examcenter/main.jsp.
[4]XIANG Y,CHANG D,CHEN B.A smart university campus information dissemination framework based on WeChat platform[M].LISS,2015:927-932.
[5]ZHAO Y,DENG S,GAO T,et al.Research on user needs for mobile information services in Chinese university libraries:comparison between existing user and potential users[J].The Electronic Library,2016,34(4):617-635.
[6]XU J,KANG Q,SONG Z,et al.Applications of mobile social media:WeChat among academic libraries in China[J].Journal of Academic Librarianship,2015,41(1):21-30.
[7]邱炳發(fā),馬燕.基于微信的研究生信息服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016(1):190-194.
[8]LANG F,ZHANG K,LI P,et al.Computer english teaching based on WeChat[M].Social Computing,2016.
[9]王明亮,閔新力,姬江濤,等.基于微信的移動(dòng)外勤管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(7):82-85.
[10]HUA X,SI L,ZHUANG X,et al.Investigations about new methods of library marketing in Chinese “985” project universities[J].Library Management,2015,36(6/7):408-420.
[11]騰訊.微信網(wǎng)頁(yè)開發(fā)樣式庫(kù)[EB/OL].[2016-10-25].http://mp.weixin.qq.com/wiki/2/ae9782fb42e47ad79eb7b361c2149d16.html.
[12]張旭紅,劉渭濱.面向移動(dòng)平臺(tái)的新聞資訊系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2014(1):5-8.
[13]騰訊.獲取用戶基本信息接口文檔[EB/OL].[2016-10-25].https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839&token=&lang=zh_CN.
[14]新浪.定時(shí)任務(wù)[EB/OL].[2016-10-25].https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839&token=&lang=zh_CN.
[15]騰訊.模版消息[EB/OL].[2016-10-25].https://mp.weixin.qq.com/advanced/tmplmsg?action=faq&token=499460181&lang=zh_CN.
[16]騰訊.模版消息[EB/OL].[2016-10-25].https://mp.weixin.qq.com/advanced/tmplmsg?action=open_tmpl&lang=zh_CN&token=499460181.
[17]BechTech.來信碼[EB/OL].[2016-10-25].http://sms.bechtech.cn/Index/prointro.html?act=prointro.
[18]楊帆,沈來信.基于SS2H的微信公眾平臺(tái)賬號(hào)設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016(1):195-199.
[19]PHP手冊(cè).Client URL庫(kù)[EB/OL].[2016-10-25].http://cn2.php.net/manual/zh/book.curl.php.
[20]騰訊.網(wǎng)頁(yè)授權(quán)獲取用戶基本信息[EB/OL].[2016-10-25].https://mp.weixin.qq.com/cgi-bin/settingpage?t=setting/function&action=function&token=773721195&lang=zh_CN.
[21]方倍工作室.微信公眾平臺(tái)開發(fā)最佳實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2014:72-79.
[22]肖金克,劉曉陽(yáng),陳鑫,等.基于微信公眾平臺(tái)的高校移動(dòng)信息服務(wù)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2016,15(8):83-85.
[23]王宇,吳煒鑫,王興偉.“互聯(lián)網(wǎng)+”下高校信息化建設(shè)模式的探索與研究[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(11):41-45.
[24]新浪.云郵件[EB/OL].[2016-10-25].https://sae.sina.com.cn/?m=newmail&a=doc&app_id=zpxue.
(責(zé)任編輯:杜能鋼)