小程序制作公司如何處理消息響應(yīng),接入開發(fā)者模式后,當(dāng)微信用戶向公眾號(hào)發(fā)消息時(shí),微信服務(wù)器會(huì)把POST消息的xml數(shù)據(jù)包發(fā)送到開發(fā)者填寫的URL中。
微信服務(wù)器推送的消息包括:圖片消息(image)、語音消息(voice)、視頻消息(video)、地理位置消息(location)和鏈接消息(link)。推送的事件包括:關(guān)注/取消關(guān)注事件(subscribe/unsubscribe)、掃描帶參數(shù)二維碼事件(scan)、上報(bào)地理位置事件(location)和點(diǎn)擊自定義菜單事件(click)。
xml中包含了發(fā)送者的OpenID、消息類型以及消息內(nèi)容。每一類消息的消息結(jié)構(gòu)會(huì)有所差異,完整消息的xml結(jié)構(gòu)可參考公眾號(hào)開發(fā)文檔。微信API類庫已經(jīng)對(duì)微信服務(wù)器的POST數(shù)據(jù)和方法做了統(tǒng)一封裝,因此我們只需要關(guān)注消息和事件的響應(yīng)邏輯。
回調(diào)接口的入口為index方法,首先加載wechat類庫,設(shè)置各消息類型和事件類型的處理方法,然后根據(jù)微信POST過來的數(shù)據(jù),獲取到消息類型,再利用call_user_func函數(shù)調(diào)用相應(yīng)的方法。這樣做的好處是,可以把各消息和事件的響應(yīng)邏輯清晰分離,不至于把代碼混在一起。
發(fā)布代碼后,就可以看到實(shí)際的運(yùn)行效果了。這是用戶關(guān)注公眾號(hào)后的消息推送,這時(shí)輸出了關(guān)注者的OpenID信息,讀者可以根據(jù)業(yè)務(wù)實(shí)際情況推送歡迎語。發(fā)送圖片后的消息響應(yīng),回復(fù)了一個(gè)鏈接,用戶點(diǎn)擊之后可以直接查看圖片。文本消息的響應(yīng),這里只是把用戶發(fā)送的文本原樣返回,實(shí)際項(xiàng)目中,可以做關(guān)鍵字匹配的自動(dòng)回復(fù)。語音消息的響應(yīng),這里返回了語音轉(zhuǎn)文字后的結(jié)果。
至此,一個(gè)完整的echo程序就開發(fā)完畢了,它可以響應(yīng)用戶在公眾號(hào)會(huì)話內(nèi)的交互。結(jié)合業(yè)務(wù)邏輯,你還可以做一些比較有意思的事情。例如,用戶可以在公眾號(hào)會(huì)話里上傳地理位置,后臺(tái)可以獲取到用戶的坐標(biāo),有了坐標(biāo)之后,就可以做基于地理位置的消息推送,比如附近的餐館、附近的公交站點(diǎn)等。再比如,用戶可以直接給公眾號(hào)發(fā)送語音,后臺(tái)拿到語音轉(zhuǎn)換后的文字后,對(duì)文字進(jìn)行關(guān)鍵字匹配,然后實(shí)現(xiàn)一些關(guān)鍵字回復(fù)。
關(guān)于公眾號(hào)的文本回復(fù),會(huì)有一些小技巧。比如推送給用戶的文本中,用雙引號(hào)括起來后,可以使用HTML中的a標(biāo)簽,這樣就可以實(shí)現(xiàn)鏈接的友好顯示,而不是直接顯示一個(gè)URL地址了。
再者,微信對(duì)回復(fù)給用戶的文本長度有限制,建議不超過2048個(gè)字節(jié),超過這個(gè)長度后,會(huì)推送失敗,用戶會(huì)看到“該公眾號(hào)暫時(shí)無法提供服務(wù),請(qǐng)稍后再試”的提示。深圳小程序制作公司本文關(guān)于“小程序制作公司如何處理消息響應(yīng)”的知識(shí)就介紹分享到這里,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。