穆明+王迎軍
目前,在眾多交流學(xué)習(xí)平臺中,微信公共平臺就是典型的代表,它讓家校共育、教學(xué)交互和交流更加方便、及時。在此,筆者將圍繞開發(fā)模式下微信公眾平臺的搭建,從URL配置、access_token獲取、菜單管理及消息接收回復(fù)等四個教學(xué)環(huán)節(jié)與同行進(jìn)行交流。
URL配置
如果要啟用開發(fā)模式就需要先成為開發(fā)者,而且編輯模式和開發(fā)模式只能選擇一個,進(jìn)入微信公眾平臺開發(fā)模式驗證,需要填寫URL和Token。URL必須是公網(wǎng)服務(wù)器的URL(指定80端口),如提交的URL為http://www.lzqsyxx.com/webmu/default.aspx。Token的選定必須與default.aspx后臺代碼所用的一致。進(jìn)入開發(fā)模式的界面如圖1所示。
點擊提交后,微信服務(wù)器會向填寫的開發(fā)者服務(wù)器發(fā)送4個參數(shù),然后需要原樣返回出來,所以在提交URL時,應(yīng)先在服務(wù)器創(chuàng)建接口測試返回echostr參數(shù)內(nèi)容,代碼如下。
access_token獲取
access_token是公眾號的全局唯一票據(jù),公眾號調(diào)用各接口時都需使用access_token。在正常情況下,access_token的有效期為7200秒,重復(fù)獲取將導(dǎo)致上次獲取的access_token失效。公眾號可以使用AppID和AppSecret調(diào)用本接口來獲取access_token。AppID和AppSecret可在開發(fā)模式中獲得(需要已經(jīng)成為開發(fā)者,且賬號沒有異常狀態(tài))。注意調(diào)用所有微信接口時均需使用https協(xié)議。http接口調(diào)用請求采用GET方式,根據(jù)微信服務(wù)器生成的本公眾號的appid和secret的字符值,直接在手機客戶端瀏覽器鏈接如下URL即可(在本機創(chuàng)建):
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
通過上述鏈接返回一個JSON格式數(shù)據(jù),可以得到access_token值。創(chuàng)建菜單正確時,微信服務(wù)器返回JSON數(shù)據(jù)包{"errcode":0,"errmsg":"ok"}提示信息,錯誤時微信服務(wù)器返回JSON數(shù)據(jù)包{"errcode":40013,"errmsg":"invalid appid"} 。
菜單管理
1.創(chuàng)建菜單
菜單分為兩種:①click。用戶點擊click類型按鈕后,微信服務(wù)器會通過消息接口推送消息類型為event的結(jié)構(gòu)給開發(fā)者,并且?guī)习粹o中開發(fā)者填寫的key值,開發(fā)者可以通過自定義的key值與用戶進(jìn)行交互。②view。用戶點擊view類型按鈕后,微信客戶端將會打開開發(fā)者在按鈕中填寫的URL值(即網(wǎng)頁鏈接),達(dá)到打開網(wǎng)頁的目的。
click菜單需要填一個key,在客戶端點擊菜單事件時會用到,view只是一個菜單超鏈接。菜單數(shù)據(jù)固定是json格式,創(chuàng)建菜單就是開發(fā)者post發(fā)送一個json數(shù)據(jù)給微信服務(wù)器,createmenu.aspx后臺主要代碼:
menu.text里面的內(nèi)容就是json示例菜單,此網(wǎng)頁在本機客戶端發(fā)布運行即可,無需上傳到公網(wǎng)服務(wù)器。
2.查詢刪除菜單
查詢和刪除菜單也很簡單,只是get請求,不需要傳數(shù)據(jù),類似createmenu.aspx后臺程序,可以在本機客戶端發(fā)布運行selectmenu.aspx或deletemenu.aspx。但因不存在post數(shù)據(jù)給微信服務(wù)器,在客戶端瀏覽器中直接輸入"https://api.weixin.qq.com/cgi-bin/menu/get?access_token=access_token"或"https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=access_token",就可實現(xiàn)查詢或刪除菜單功能。查詢菜單返回的是json數(shù)據(jù),其實就是創(chuàng)建菜單的menu.txt里面的內(nèi)容。刪除成功返回信息提示:{"errcode":0,"errmsg":"ok"}。
消息接收回復(fù)
使用微信公眾號就是要對用戶發(fā)送的信息進(jìn)行處理,以接受普通文本消息為例。從文檔上可以看出接受消息獲得的是一個XML格式文件,接受消息的途徑在申請開發(fā)模式時填寫的URL后臺程序代碼實現(xiàn)。當(dāng)普通微信用戶通過微信服務(wù)器向公眾賬號發(fā)消息時,微信服務(wù)器將POST該消息到填寫的URL上,傳遞給開發(fā)者的文件為XML文檔。文本格式結(jié)構(gòu)為:
開發(fā)者回復(fù)給微信服務(wù)器的文本消息結(jié)構(gòu)格式與傳遞給開發(fā)者的文件格式(為XML文檔)結(jié)構(gòu)相同,我們在公網(wǎng)服務(wù)器的default.aspx頁面后臺添加如圖2所示代碼:
說明:messageHelp是封裝的消息處理類庫,代碼在此省略。