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