金琦




編者按:當下很多學校正在嘗試或已經搭建了屬于自己學校的微信公眾平臺。不同的學校對微信公眾平臺的理解不同,也決定了微信公眾平臺具體的教育實現理念。但無論如何,由于微信公眾平臺的便利互動性,很容易黏合學生、教師、家長、校友等學校關聯者,進而通過圖片、文字、聲音、視頻的富媒體傳播形式給予他們一個展示自己更自由、更活躍思想的舞臺。因此,學校建立微信公眾平臺的意義不亞于開展一個綜合教育平臺項目。如何搭建一個有實用價值且有教育內涵的微信公眾平臺,是我們教育者應該思索的問題,這兩期主持人和嘉賓將一起來探討微信公眾平臺在學校教育中的具體實踐。
作為一個目前注冊用戶量已突破6億的應用,微信已經成為當之無愧的亞洲地區最大用戶群體的移動即時通訊軟件。微信公眾平臺是騰訊公司在微信的基礎上新增的功能模塊,通過這一平臺,個人和組織都可以創建一個微信公眾賬號,用來實現與特定群體的文字、圖片及語音的全方位溝通與交流,同時因其發展的快速和現今新媒體數字化下虛擬教育的需求,微信公眾平臺在教育領域中嶄露頭角,它的出現,將促進教學理念創新、教學模式和手段的改革。
通過建立微信公眾平臺,與學校教育事業相關聯,同時利用新媒體具有的交互性和跨時空的特點,及其消解力量——消解傳統媒體(電視、廣播、報紙、通信)之間的邊界,消解國家與國家之間、社群之間、產業之間的邊界,消解信息發送者與接收者之間的邊界,消解學校與學生、學校與教師、教師與學生之間的邊界,進而提升學生和教師的學習和工作效率。而公眾平臺除了開放性、交互性、即時性等一般特點外,還具有傳播便捷性、交流靈活性、內容簡潔性等特點,對于喜歡展現自我、向往平等交流、渴望新型師生關系的學生來說,微信公眾平臺必將成為虛擬教育之路上里程碑式的一步。
● 微信公眾平臺適合在學校教育中推廣
1.用戶基數大,移動端即可實現多方操作
首先,微信具有移動即時通訊軟件的巨大客戶基數,且使用的人群會因社交圈的增長而成擴散式增長。這為教育事業提供了一個較為廣闊的應用平臺,盡管現在對中小學生使用移動智能終端設備(手機、平板)還有很大爭議,但我們也應該看到學生移動智能終端設備普及面一直在擴大,這也從另一個角度要求教育者要在有效媒介上提供豐富有效的教育資源,如果教師將相應的教育資源上傳至微信公眾平臺(除了移動設備,桌面設備也可以完成這一過程),所有用戶都可以使用教育資源進行移動學習,這就提供了極為方便的學習方式。其次,教師通過基于微信公眾平臺發展的各類“輕應用”能及時接收和反饋信息,可隨時查看更新的動態及公告,與社會進行多接口聯系,能及時掌握最新消息,在教育信息化高速發展的時刻,領先別人一大步。最后,還可與學校相關社會對象(家長、校友)利用碎片化的時間通過移動終端獲取學校、教師傳遞的信息,與學校建立長期有效的聯系渠道。
2.具有強大的互動功能,輔助傳統學習方式
微信平臺操作信息具有新媒體教學方式即時性的特點。其后臺對用戶進行跟蹤保證了教學的時效性,以前學生在課下遇到的問題只能在學校里請教教師,這就造成了問題不能及時得到解決、寶貴的時間因來回奔波而被浪費的問題。而微信的即時性可以有效地解決傳統教學方式遺留下來的問題,其實時留言、消息推送等功能,能夠隨時隨地通過移動設備進行無距離式解答,省去了學生課余的補課費用,也能讓教師足不出戶就能輔導學生。
學生通過二維碼、微信推送等功能連接互聯網上的幾乎所有學習資源,進而擴充學習面,掌握最新學習資料與教學動態。并通過微信平臺的快速分享,與周圍教師和同學建立良好的學習氛圍,一起互幫互助,共同查漏補缺。
綜上所述,微信本身并不是一個類似數據庫一樣的學習資源載體,而是一個可以快速整合網絡學習資源和實現多方互動的強大平臺。
● 學校微信公眾平臺開發基本原則
微信公眾平臺開發系統的基本原則是以系統總體目標為宗旨,為用戶提供一個技術先進、成熟可靠、靈活適用、性能優秀的調用系統。因此,系統設計將遵循如下原則。
1.開放性
系統在設計時考慮到功能的可擴展性與維護的方便性,使用的操作平臺類型,應用服務器、編程語言和數據庫,將遵循通用性、開放性原則,以期達到減少后續功能增加、修改的難度,減少由于維護方、后續服務方的變更,帶來系統二次開發、維護的難度。
2.高性能
微信公眾平臺設計架構和硬件搭配要適應未來大數據不斷增長的要求。以便關注者可以查看的數據更多、更全、更細;以便學校可以挖掘更多精細化、個性化的數據統計功能加以利用。
3.實用性
微信公眾平臺以中心需求為目標,以方便用戶為原則,在吸取先進管理經驗的基礎上,量身定做;在統一的用戶界面下提供各種實用功能,盡可能降低使用前的培訓和使用中的維護投入。提供微信前端開發的無縫連接。
4.安全性
充分考慮系統及數據資源的容災、備份、恢復的要求。為系統提供強大的數據庫備份工具。充分考慮微信公眾平臺的安全要求,作到內外網分離,信息發布管理責任到人。
● 建立微信教育平臺的具體步驟
1.微信公眾賬號的注冊和認證
教育者在建立公眾平臺時,首先需要選擇創建的是訂閱號還是服務號,當運營主體是學校時,我們可以選擇創建訂閱號或者服務號。如果運營主體是教師本人時,只能創建訂閱號。二者區別見下表。
由上表可見,如果學校只注重簡單的學校消息推送,那么創建訂閱號就可以了,但如果想作為有教育理念的學校的微信公眾平臺就不能單純一味推送消息,即使發送教育雞湯文章也會引起關注者的“審美疲勞”,它的作用應該在于:用戶關注了你的公眾號之后,立即能得到他想要的服務。因此可以搭建自己的平臺,定制調用相關高級接口。如果考慮到學校微信號能顯示在通訊錄第一層次內,消息提示更顯著,也要選擇注冊服務號。
首先去https://mp.weixin.qq.com填寫注冊信息,按照信息提示激活郵箱。公眾號開發有兩個模式:編輯模式和開發模式。編輯模式提供了簡單的消息自動回復和關鍵字自動回復功能,但功能太局限。對學校的微信公眾平臺而言,它是為學生、教師和家長提供交流的平臺,而非新聞媒體那般主動與用戶進行交互。這也是訂閱號和服務號的又一個區別。前者是用戶主動進行交互,后者是根據用戶主動需求而提供個性服務。現在的主要要求是針對學校特殊教學功能進行自行開發,所以我們著眼于開發模式。
2.微信公眾賬號開發模式下的環境介紹
(1)開發平臺
開發個性服務號,公眾號開發平臺搭建一般分為兩種方式:學校具備獨立公網IP的對外服務器;或者選擇部分免費的云平臺進行開發,如百度BAE應用引擎BAE(http://developer.baidu.com/bae)和新浪云平臺(http://sae.sina.com.cn)。考慮到與學校現有OA系統數據庫的方便對接,用戶可選擇在學校對外服務器上搭建環境。后面的模型實例也都是敘述在學校服務器上如何搭建平臺。
(2)開發環境
由于微信服務器請求公眾賬號服務使用的是HTTP協議,因此在公眾賬號服務器上必須要運行一個HTTP服務并打開端口(目前騰訊公司只允許標準的80端口),所以公眾平臺的處理程序其實就是一個Web項目,負責接收和響應微信服務器發送的HTTP請求,即微信服務器將用戶發送的消息以XML格式提交給用戶所設置的服務器地址。由服務器進行處理然后返回一個XML數據給微信服務器,微信服務器再返回給用戶。因此,只要是支持動態Web開發的編程語言(Java、PHP、ASP.NET),都能夠用于公眾平臺開發。如果是教師自己初次開發,為了能參考騰訊官方給出的眾多PHP代碼和為后期采用更穩定的Linux版本的Nginx、PHP-FPM、MySQL做鋪墊,可先嘗試使用Windows上的AppServ(http://www.appservnetwork.com)作為開發和調試環境,AppServ是一個軟件集合,包括Apache(搭建Web服務器軟件)、PHP(網頁程序設計語言)、MySQL(數據庫管理系統軟件)、PHPMyAdmin(對MySQL進行圖形界面管理)四個組成部分,AppServ把這些軟件集合在一起的目的是使在Windows上部署整套環境變得更簡單。另外,用戶還可使用Zendstudio作為PHP開發的IDE環境進行開發體驗,因為它具有我們開發時必需的高亮顯示和智能提示功能,較方便。
3.微信開發平臺搭建實例
為了方便文章敘述與讀者實踐,接下來我將以“浙師大附中”微信公眾平臺為實例來敘述。
(1)校驗URL接入
微信公眾平臺將校驗URL是否正確接入,校驗完成就可以進行開發,可以刪除官方代碼,也可以在官方代碼基礎上進行開發。官方示例代碼可以到http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.zip下載。安裝好后,將配置PHP文件填入URL地址,Token應與配置PHP里的一致。由于篇幅關系代碼就不貼上來了,有興趣的讀者們可以自行下載,學校微信平臺服務器API接口配置如圖1所示。
在這里,我們簡要分析一下示例代碼的意思,示例代碼大致分成了四個部分:①Token定義。②定義一個類WeChatCallbackapiTest。③創建類WeChatCallbackapiTest的一個實例對象$wechatObj。④調用新的valid()方法。該代碼只是官方給出的簡單示例代碼,如果要做復雜的開發,開發者還是要按照API改寫。然后就以該公眾號的菜單順序,分模塊進行講解。
(2)使用第三方平臺發布新聞消息
由于微信服務號一個月只能群發四次消息給用戶。我們還可以用在本地服務器上搭建信息發布平臺的方法來彌補這一不足。學校一般都要推送一些文章,通知兼顧美觀和便捷,這里推薦Wordpress平臺,浙師大附中公眾號里的校園微新聞就是通過Wordpress平臺發布的。鑒于已經搭建好了AppServ平臺,直接去Wordpress官網下載最新安裝包,解壓程序壓縮包得到一個Wordpress命名的文件夾。將文件夾內容拷貝到wwwroot目錄下,訪問域名/PHPmyadmin。先建立一個Wordpress數據庫和一個賬號,然后訪問域名,填好賬號密碼,安裝。
安裝完畢后,為了適配移動端顯示,需要安裝Angela插件。接著只要使用WordPress后臺發布新聞,返回給用戶新聞鏈接地址以圖文消息的方式,用戶就可以收到如圖2的提綱頁和圖3的詳情頁效果了。
(3)保存微信平臺歷史消息
由于微信平臺默認新關注者和注銷微信號后重新登錄是不能接受以往推送消息的,尤其是一個月只能推送四條消息的服務號。對學校來說,一些以往經過精心編輯的消息“淹沒”了的確比較可惜,用戶可以通過“歷史消息”菜單鏈接到微信后臺的圖文消息中去,具體鏈接地址為:http://mp.weixin.qq.com/mp/getmasssendmsg?__biz=MzA3MzE3Nzg5MA==#wechat_webview_type=1&wechat_redirectbiz=MzA3MzE3Nzg5MA==#wechat_webview_type=1&wechat_redirect(注:每個公眾號的歷史消息鏈接都不相同,此鏈接在普通電腦瀏覽器上無法打開,需要使用微信內置瀏覽器才能打開。)
(4)文本交互實例——成績查詢功能
微信公眾平臺不僅僅可以成為如前所述展示類似學校網站官方消息的一個微平臺,我們還可以對微信公眾號開發更多具備移動手持終端特色的交互功能。例如,當下學校都會面對這樣一個教育活動——教師對學生、家長及時進行成績反饋。很多教師都會在教室后墻上貼上很多成績報表,或者不厭其煩地接聽家長的查詢電話,這樣拋開實時性不說,還給教師增加了很大的工作壓力。如果通過微信公眾號整合學校傳統教務系統在移動設備上以聊天窗口形式的交互方式來查詢學生成績,用戶體驗將會更好。將成績文件存入MySQL數據庫(如圖4),然后按照示例文件寫好PHP頁面,將用戶輸入參數調入PHP頁面,經過一系列查詢轉換后,輸出成績給用戶。這里我們采用了班級、姓名、日期三個參數來查詢成績,班級姓名定義查詢者,日期定義某次考試,最后以文本內容回復給用戶。從目前我校學校實踐來看,非捆綁訪問者在單位時間內能進行三次成績查詢,就可以安全地滿足訪問者的成績查詢需要。主要代碼如下所示,圖5為移動端查詢樣例。
function score_search($class,$classnum,$stuname,$examtime,$fromUsername,$toUsername){
$msgType = "text";
$time = time();
$con = odbc_connect('****',"","");
//$examtime = iconv("utf-8","gb2312//IGNORE",$examtime);
$sql = "select * from xscj where 考試時間 = {^$examtime} and 班內序號 = $classnum and 姓名 = '$stuname' and 班級名稱 = '$class'"; //
$sql = iconv("utf-8","gb2312//IGNORE",$sql);
$query = odbc_exec($con, $sql);
$textTpl = "<xml>
從圖6可以看到,基于文本的查詢方式,符合移動端開放、交互、便捷的特征,目前在我校使用比較普遍,從微信服務號后臺中可以看到其使用熱度。
“自動回復”是微平臺的一個基本特征,下頁圖7是用戶學校智能回復范例。除了以上針對性開發文本回復外,還可以設置一個自動聊天機器人來滿足學生們的好奇心和增加平臺的黏度。這里我校引用了第三方自動聊天機器人(圖靈)API,對API返回的數據進行提取,然后反饋給用戶(如下頁圖8)。增加了平臺的親和力。在其自備的智能回答外,用戶還可以定制諸如“招生”、“教師基本情況介紹”等一些社會關心的問題,統一導入全校教師基本情況介紹。
(5)觸屏交互——教師辦公
除了文本交互方式外,用戶還可利用移動設備的觸屏功能,拓展觸屏交互,在此實例上PHP通過添加微軟sqlsrv系列函數來連接學校現有OA的MS-SQL數據庫,進而引用了jQueryMobile模板,使之在觸摸屏幕上呈現得更加美觀。jQuery Mobile是jQuery在手機上和平板設備上的版本。jQuery Mobile不僅會給主流移動平臺帶來jQuery核心庫,而且會發布一個完整統一的jQuery移動UI框架。其最大特點就是可以快速開發出所需要的移動客戶端頁面,而且兼容性也非常好。jQuery Mobile同時提供了針對移動端瀏覽器的事件,這些事件使得頁面的展示更加精美。當然現在主流的前段開發框架還有bootstrap等。在這個jQuery mobile和html5的基礎上,可以根據自己學校的需求進行開發,如進行網上的授課、學校辦公(一周安排、校務公開、校內郵件、教師工資)功能。圖9是“一周工作安排”實例。
4.微信公眾號開發注意事項
微信工作平臺開發是一項龐大而復雜的工作,在嘗試時可能會遇到一些問題。下面列舉幾種常見問題的解決辦法,供大家參考。
(1)Token校驗失敗
在使用開發者模式時,用戶有時候把URL與Token填入開發者中心后,會出現“token驗證失敗”字樣這種現象。要解決這個問題先要深入理解URL和Token的意義。前面已經簡要提到過,URL其實是放置了API程序的網址,API程序存在于用戶在自己的服務器或者虛擬主機上。Token顧名思義就是一個令牌,它的作用在于維護你的服務器與微信服務器之間的身份認證,防止非法數據影響。所以可以用追蹤HTTP的方法來查看服務器是收到了請求未回應,還是根本沒有收到請求。
因此,在API程序中可加入:
$_SERVER["QUERY_STRING"];
$_SERVER["REMOTE_ADDR"];
通過這兩個系統變量就可以追蹤是否收到了HTTP請求。如果沒有問題,那先檢查Token填寫的是否和程序中的一致,再檢查程序是否有問題。
(2)訂閱號在添加自定義菜單時候顯示unauthorized
發生這種情況一半是因為用戶的微信號屬于未認證的訂閱號。無論是用微博關聯認證還是微信認證的訂閱號,都沒有使用高級自定義菜單的權限,去微信認證后即可開啟高級自定義菜單。
(3)Access_Token的獲取
Access_Token和Token完全是兩種事物。它是公眾號的唯一根據。由于Access_Token的保存期只有兩個小時,需要定時獲取。為了方便,貼上獲取Access_Token的代碼。
<?PHP
define("APPID", "YourAppID");
define("APPSECRET", "YourAppSecret ");
$token_access_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . APPID . "&secret=" . APPSECRET;
$res = file_get_contents($token_access_url); ? ?//獲取文件內容或獲取網絡請求的內容
//echo $res;
$result = json_decode($res, true); ? //接受一個 JSON 格式的字符串并且把它轉換為 PHP 變量
$access_token = $result['access_token'];
echo $access_token;
PHP>
(4)隱藏微信平臺底部的導航欄
通過在網頁中增加以下JavaScript代碼,隱藏網頁在微信中網頁底部導航欄:
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
WeixinJSBridge.call('hideToolbar'); });
● 對微信教育平臺和虛擬化教育的展望
隨著科技的快速發展,虛擬世界正在不斷地融入我們的日常生活中。但是,對于現實中的校園,卻往往顯得束手無策,不知道如何融合,總是感覺到虛擬化教育的不真實。事實上,微信公眾平臺就是很好的融入接口。它是數字化、信息化時代的產物,是建設“數字化校園”很好的切入口,除了前面敘說的我校在搭建微信公眾平臺上的“軟應用”開發外,用戶還可以在公眾平臺上做些“硬應用”開發。例如,在微信公眾平臺上捆綁教師證件號,將教室諸如電腦、投影、幕布、空調控制都由教師手機來控制。甚至還可以捆綁公眾平臺業已成熟的商業支付功能,家長和學生只需要在公眾平臺就可以完成對學費支付、飯卡充值、寢室電費支付等工作。我們正處在教育信息化的轉變時期,學校使用公眾平臺促進虛擬化教育正是一種創新,不嘗試又怎么會有收獲呢?這就是現在我們就可以做的改變!只要你做了,你就會慢慢地感覺到,教師們對于數字化教學更深層次的感受,以及潛移默化的認可。現在已經有較多的學校開發了個性化的微信公眾號平臺,方便服務師生、校友、家長。相信以后越來越多具有學校辦學特色并給關注者帶來實際幫助的學校微信公眾號平臺會不斷涌現。