(河北大學(xué)計(jì)算中心 河北·保定)
隨著高校信息化建設(shè)的迅速發(fā)展,多數(shù)高校已經(jīng)構(gòu)建了自己的網(wǎng)絡(luò)信息服務(wù)系統(tǒng),學(xué)校中各教學(xué)單位、管理機(jī)構(gòu)大多已經(jīng)構(gòu)建了自己的網(wǎng)站,資產(chǎn)、教務(wù)、圖書、財(cái)務(wù)等均已實(shí)現(xiàn)網(wǎng)上管理。這些網(wǎng)絡(luò)信息系統(tǒng)的使用,極大地提高了辦公效率,方便了師生獲取相關(guān)信息。但是,多數(shù)師生在使用計(jì)算機(jī)網(wǎng)絡(luò)時(shí)并不在意學(xué)校網(wǎng)站上發(fā)布的通知公告,重要通知不能在網(wǎng)站上發(fā)布,還需要使用傳統(tǒng)手段與其配合才能及時(shí)告知相關(guān)師生。另外,由于受到計(jì)算機(jī)終端數(shù)量的限制,網(wǎng)上選課、網(wǎng)上評教等工作需要分批次進(jìn)行,長時(shí)間占用學(xué)校機(jī)房資源,對教學(xué)秩序和教學(xué)質(zhì)量產(chǎn)生一定的影響。本文以此作為研究背景,提出使用微信公眾平臺解決通知及時(shí)下發(fā)和操作終端不足的問題。
(一)微信及微信公眾平臺簡介。微信是騰訊公司于2011年1月21日推出的一款通過網(wǎng)絡(luò)快速發(fā)送語音短信、視頻、圖片和文字,支持多人群聊的手機(jī)聊天軟件。用戶可以通過微信與好友進(jìn)行類似于短信、彩信、語音對講等方式的聯(lián)系,截至2013年1月24日,僅用3年時(shí)間,微信用戶已達(dá)3 億,特別是在大學(xué)生群體中,微信的使用率極高,幾乎是大學(xué)生手機(jī)上必裝的應(yīng)用。
微信公眾平臺是騰訊公司在微信的基礎(chǔ)上新增的功能模塊,通過這一平臺,個(gè)人和企業(yè)都可以打造一個(gè)微信的公眾號,實(shí)現(xiàn)和特定群體的文字、圖片、語音的全方位溝通、互動(dòng)。利用微信公眾平臺,公眾號可以直接推送重要的通知消息到用戶的手機(jī),還可以設(shè)定關(guān)鍵詞進(jìn)行自動(dòng)回復(fù),也可以一對一地和用戶進(jìn)行交流。除此之外,微信公眾平臺還提供了“開發(fā)模式”,使用微信公眾平臺的開發(fā)接口,公眾號可在自身服務(wù)器上接收用戶的微信消息,并可按需回復(fù)相應(yīng)用戶。在線翻譯、在線訂票、天氣預(yù)報(bào)等應(yīng)用已經(jīng)在微信公眾平臺上相繼上線。
(二)微信公眾平臺注冊與推廣。在使用微信公眾平臺服務(wù)之前需注冊一個(gè)微信公眾賬號,微信公眾賬號需使用電子信箱進(jìn)行綁定注冊,注冊過程較為簡單,使用瀏覽器登錄微信公眾平臺網(wǎng)站:http://mp.weixin.qq.com/,找到“立即注冊”鏈接,點(diǎn)擊進(jìn)入注冊頁面,按注冊要求填寫基本信息,郵箱激活,進(jìn)行個(gè)人信息或單位信息登記,最后完善公眾號信息即可。
注冊成功后,登錄微信公眾平臺后臺,在設(shè)置頁面中的賬號信息處會看到“微信號”和“二維碼”,通過在微信搜索微信號或掃描二維碼圖片即可關(guān)注相關(guān)公眾號。將含有微信號和二維碼的說明信息發(fā)布到網(wǎng)站,張貼到學(xué)校海報(bào)欄,很快就會得到了學(xué)生們的關(guān)注。
(三)微信公眾平臺消息接口。公眾平臺消息接口為開發(fā)者提供與用戶進(jìn)行消息交互的能力。對于成功接入消息接口的公眾賬號,當(dāng)用戶發(fā)消息給公眾號,微信公眾平臺服務(wù)器會使用HTTP 請求對接入的網(wǎng)址進(jìn)行消息推送,第三方服務(wù)器可通過響應(yīng)包回復(fù)特定結(jié)構(gòu),從而達(dá)到回復(fù)消息的目的。
1、網(wǎng)址接入。啟用“開發(fā)模式”時(shí)需要提供URL 和Token 兩個(gè)參數(shù),其中URL 必須以“http://”開頭,且只支持80 端口,Token 由開發(fā)者任意填寫,用作生成簽名。當(dāng)公眾平臺用戶提交這兩個(gè)參數(shù)時(shí),微信服務(wù)器將發(fā)送GET請求到填寫的URL 上,并且?guī)弦韵滤膫€(gè)參數(shù),如表1 所示。(表1)

表1
開發(fā)者通過檢驗(yàn)signature 確認(rèn)此次GET請求是否來自微信服務(wù)器,如果校驗(yàn)通過,原樣返回echostr 參數(shù)內(nèi)容,接入生效,否則接入失敗。加密/校驗(yàn)流程如下:
①將token、timestamp、nonce 三個(gè)參數(shù)進(jìn)行字典序排序;
②將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1 加密;
③開發(fā)者獲得加密后的字符串可與signature 對比,標(biāo)識該請求來源于微信。
2、消息推送。當(dāng)普通微信用戶向公眾賬號發(fā)消息時(shí),微信服務(wù)器將POST 該消息到填寫的URL 上。以推送文本消息為例,消息xml 的結(jié)構(gòu)及相關(guān)參數(shù)說明如下:


表2
3、消息回復(fù)。對于每一個(gè)POST 請求,開發(fā)者在響應(yīng)包中返回特定xml 結(jié)構(gòu),對該消息進(jìn)行響應(yīng)(現(xiàn)支持回復(fù)文本、圖文、語音、視頻、音樂和對收到的消息進(jìn)行星標(biāo)操作)。微信服務(wù)器在五秒內(nèi)收不到響應(yīng)會斷掉鏈接。以回復(fù)文本消息為例,回復(fù)消息的xml 的結(jié)構(gòu)及相關(guān)參數(shù)說明如下:


表3
4、系統(tǒng)設(shè)計(jì)
(1)系統(tǒng)架構(gòu)的選擇。通過微信“開發(fā)模式”接口,我們看到與微信進(jìn)行信息交互的其實(shí)就是一個(gè)Web 網(wǎng)站,構(gòu)建一個(gè)Web 網(wǎng)站在操作系統(tǒng)、Web 服務(wù)器、開發(fā)語言及后臺數(shù)據(jù)庫等方面有多種選擇,由于本系統(tǒng)功能較為簡單,但訪問量可能巨大,而且還可能需要經(jīng)常針對一些特殊情況增加功能,因此我們選擇LNMP(Linux+Nginx+MySQL+PHP)這種網(wǎng)站服務(wù)器架構(gòu)。
(2)程序流程和功能。程序流程如圖1 所示。(圖1)系統(tǒng)有兩個(gè)功能:數(shù)據(jù)查詢和智能聊天。在數(shù)據(jù)查詢這里我們目前實(shí)現(xiàn)了考場查詢、考試分?jǐn)?shù)查詢、學(xué)生課表查詢和自習(xí)室占用情況查詢。智能聊天功能使用了一套基于AIML 的PHP 開源聊天項(xiàng)目,查詢消息以外的其他對話將由這套系統(tǒng)進(jìn)行智能答復(fù),增加了系統(tǒng)的人性化和趣味性。

經(jīng)過實(shí)際應(yīng)用,系統(tǒng)運(yùn)行良好,得到了近半數(shù)在校生的關(guān)注,通過公眾平臺發(fā)布的通知消息的瀏覽量遠(yuǎn)超傳統(tǒng)網(wǎng)站,在公布考試成績期間,日查詢峰值達(dá)12 萬次,有效地解決了校內(nèi)查詢終端不足的問題,達(dá)到了預(yù)期效果。
[1]百度百科-微信[EB.OL].http://baike.baidu.com/view/5117297.htm.
[2]百度百科-微信公眾平臺[EB.OL]. http://baike.baidu.com/view/9212662.htm.
[3]騰訊微信公眾平臺API 文檔[EB.OL].http://mp.weixin.qq.com/wiki/index.php.
[4]許登旺,鄒天思,潘凱華.PHP 程序開發(fā)范例寶典[M].人民郵電出版社,2007.