国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于新浪SAE、微信的課表查詢系統(tǒng)

2016-07-12 14:14王清王文莉
科技視界 2016年6期

王清 王文莉

【摘 要】基于新浪SAE平臺,利用PHP CURL技術(shù)獲取課表查詢頁面服務(wù)器會話SESSION_ID、驗(yàn)證碼圖片,模擬提交教師信息表單數(shù)據(jù),獲取、識別、存儲教師課表信息。SAE PHP服務(wù)器接收、識別微信公眾號轉(zhuǎn)發(fā)的用戶菜單點(diǎn)擊事件、文本消息,獲取用戶身份,查詢對應(yīng)課表信息發(fā)送給微信公眾號,微信公眾號回復(fù)給用戶。

【關(guān)鍵詞】SAE平臺;微信課表信息;查詢系統(tǒng)

0 前言

教授課程較多的老師,課表安排繁多復(fù)雜。老師隨身攜帶紙質(zhì)課表也十分不便,當(dāng)然我們可以使用智能手機(jī)上網(wǎng)查詢。可惜國內(nèi)大多高校的教務(wù)系統(tǒng)為傳統(tǒng)的HTML網(wǎng)頁,僅適合電腦端瀏覽;使用手機(jī)瀏覽,頁面顯示大多變形或異常,這就給課表的查詢帶來一定的困難?,F(xiàn)在,微信是一種生活方式!智能手機(jī)用戶幾乎均安裝了微信客戶端。那么,使用微信查詢課表將十分的方便。新浪云應(yīng)用(Sina App Engine簡稱SAE)是國內(nèi)最具影響力的,分布式Web應(yīng)用/業(yè)務(wù)開發(fā)托管、運(yùn)行平臺。SAE提供數(shù)據(jù)庫服務(wù)、存儲與CDN服務(wù)、應(yīng)用程序服務(wù)、網(wǎng)絡(luò)與安全服務(wù)、通信服務(wù)與第三方服務(wù)等[1]。將開發(fā)的PHP、JAVA web應(yīng)用運(yùn)行在SAE平臺上,無需考慮硬件、運(yùn)維、安全等問題,移動應(yīng)用開發(fā)部署十分方便,且運(yùn)維成本低廉,適合中小型移動應(yīng)用的開發(fā)部署。

1 技術(shù)路線

1.1 微信平臺及綁定

首先開通一個(gè)微信公眾號,并通過微信的公眾號認(rèn)證,通過微信認(rèn)證有權(quán)使用微信提供的自定義菜單接口。本文使用的微信公眾號為zzrvtchelp。zzrvtchelp公眾號采用回調(diào)開發(fā)模式,微信公眾平臺將用戶關(guān)注事件、用戶發(fā)送的消息、圖片等信息轉(zhuǎn)發(fā)給SAE PHP服務(wù)器,由SAE PHP服務(wù)器處理;SAE PHP服務(wù)器處理完畢將結(jié)果數(shù)據(jù)發(fā)送給微信公眾平臺,微信公眾平臺再將其發(fā)送給用戶,流程如圖1所示。

用戶關(guān)注微信公眾號后,用戶可發(fā)送消息給公眾號,公眾號反饋消息給用戶完成用戶與微信公眾號的互動。但這種互動方式微信公眾號無法識別用戶的教工身份。微信為每一個(gè)用戶提供了一個(gè)openID,用戶發(fā)送的消息與公眾號反饋的消息均攜帶此openID,我們將openID與教師在教務(wù)系統(tǒng)中的userID綁定就可以識別教師的身份查詢并回復(fù)其課表。

用戶關(guān)注微信公眾號時(shí),平臺反饋關(guān)注消息如圖2所示。提示用戶點(diǎn)擊藍(lán)色字體鏈接進(jìn)入微信綁定頁面,如圖3所示。微信綁定頁面URL地址為:

http://2.zzrvtc.sinaapp.com/KB1/mainJsKb.php?openID=oYNlSs5uk-Vcbp0G0Pqz2RZ7jbx8。該URL攜帶了openID參數(shù),該參數(shù)是由SAE后臺分析用戶關(guān)注事件獲取的該用戶的openID,用于微信用戶的綁定。用戶輸入教工號、驗(yàn)證碼選取查詢得到的教工對象,最后點(diǎn)擊【綁定微信并導(dǎo)入課表】按鈕,頁面發(fā)送GET請求到SAE PHP服務(wù)器用于獲取用戶課表。

1.2 獲取課表

鄭州鐵路職業(yè)技術(shù)學(xué)院采用青果公司的教務(wù)系統(tǒng),該系統(tǒng)未對外開放課表查詢接口,但提供了教師課表查詢頁面方便教師查詢課表。我們可通過CURL提交表單數(shù)據(jù)給該頁面URL接口以獲取教師的課表。

微信綁定頁面是運(yùn)行在SAE服務(wù)器上的PHP頁面,用戶點(diǎn)擊打開該頁面時(shí),服務(wù)器首先采用CURL登陸青果教務(wù)系統(tǒng),獲得頁面與服務(wù)器交互服務(wù)器分配的SESSION_ID和與此SESSION_ID對應(yīng)的驗(yàn)證碼圖片。CURL是一個(gè)利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具,支持HTTP、FTP、TELNET等協(xié)議,常用于WEB頁面訪問、模擬表單提交、網(wǎng)絡(luò)資源下載等操作,PHP支持CURL庫[2]。用戶填寫教工號或姓名、驗(yàn)證碼選取員工對象(針對教師重名的現(xiàn)象),點(diǎn)擊【綁定微信并導(dǎo)入課表】按鈕,頁面發(fā)送POST請求給SAE PHP服務(wù)器。

位于SAE上的PHP服務(wù)器接收到該頁面的POST請求,并獲取其攜帶的數(shù)據(jù),PHP服務(wù)器采用CURL向教務(wù)系統(tǒng)教師課表查詢頁面URL接口發(fā)送POST請求(該請求攜帶表1所示數(shù)據(jù)),教務(wù)系統(tǒng)返回該教師的課表數(shù)據(jù)。

青果返回的課表數(shù)據(jù)是HTML頁面,我們需對該HTML頁面解析才能獲取課表的文本信息。PHP提供了HTML解析類庫SIMPLE_HTML_DOM,利用SIMPLE_HTML_DOM根據(jù)HTML頁面的格式特點(diǎn)如標(biāo)題、表格、列表等HTML元素節(jié)點(diǎn)對HTML頁面進(jìn)行解析獲取我們需要的課表數(shù)據(jù)。

SAE提供了MYSQL數(shù)據(jù)庫用于移動應(yīng)用的數(shù)據(jù)存儲,將解析得到的課表數(shù)據(jù)存儲到MYSQL數(shù)據(jù)表中,數(shù)據(jù)包包含openID字段,用于識別用戶微信是否綁定。

1.3 微信課表查詢

用戶點(diǎn)擊【我的課表】菜單查詢當(dāng)日課表或發(fā)送數(shù)字0X(X取值1-7)查詢本周數(shù)字對應(yīng)日的課表;如發(fā)送01查詢本周一課表。用戶點(diǎn)擊【我的課表】或發(fā)送數(shù)字0X,微信公眾號將菜單點(diǎn)擊事件或文本消息發(fā)送給SAE PHP服務(wù)器,服務(wù)器識別菜單事件ID、消息關(guān)鍵詞以及消息的發(fā)送者即該用戶微信openID,在課程數(shù)據(jù)表中查詢openID對應(yīng)的課表內(nèi)容,將課表內(nèi)容發(fā)送給微信公眾號,微信公眾號以文本方式返回教師的課表,如圖4、圖5所示。

2 結(jié)語

利用新浪SAE平臺、微信客戶端實(shí)現(xiàn)了微信課表查詢移動應(yīng)用。目前zzrvtchelp公眾號處于我校軟件學(xué)院系內(nèi)教師試用階段,已平穩(wěn)運(yùn)行6個(gè)月,我系教師反映效果良好,將向全校推廣。微信課表查詢是數(shù)字校園向移動互聯(lián)發(fā)展的一個(gè)小的嘗試,下一步將結(jié)合我校實(shí)際,開發(fā)微信班車位置查詢等移動應(yīng)用。

【參考文獻(xiàn)】

[1]新浪.SAE云應(yīng)用[EB/OL].http://www.sinacloud.com/sae.html,2015.

[2]腳本之家.PHP中使用cURL實(shí)現(xiàn)Get和Post請求的方法[EB/OL].http://www.jb51.net/article/34745.htm,2013-03-13.

[責(zé)任編輯:楊玉潔]