這篇文章主要介紹Force.com微信開發(fā)系列值如何處理用戶消息,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)提供從項(xiàng)目策劃、軟件開發(fā),軟件安全維護(hù)、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評(píng)估等整套的建站服務(wù),主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,成都app軟件開發(fā)以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。創(chuàng)新互聯(lián)深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!成功配置好Force.com作為微信公開號(hào)的服務(wù)端后,接下來需要的任務(wù)是處理用戶發(fā)送的消息。當(dāng)普通微信用戶向公眾賬號(hào)發(fā)消息時(shí),微信服務(wù)器將POST消息的XML數(shù)據(jù)包到開發(fā)者填寫的URL,通常有的消息類型有文本信息、圖片信息、語音信息、視頻信息、地理位置信息以及鏈接信息。關(guān)于每種消息的XML數(shù)據(jù)包的詳細(xì)結(jié)構(gòu),請(qǐng)參見http://mp.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E6%94%B6%E6%99%AE%E9%80%9A%E6%B6%88%E6%81%AF。文章介紹文本消息的處理,文本消息XML數(shù)據(jù)包格式以及說明如下:
文本消息XML數(shù)據(jù)包示例
1348831860 1234567890123456
數(shù)據(jù)包結(jié)構(gòu)說明
通過Debug Logs監(jiān)控用法發(fā)送數(shù)據(jù)
在Force.com里可以很容易的觀察到微信用戶發(fā)送來的XML數(shù)據(jù)信息,為此進(jìn)入Force.com后臺(tái)Setup頁面后在左側(cè)導(dǎo)航條的Logs下方找到Debug Logs,點(diǎn)擊進(jìn)入后,點(diǎn)擊右側(cè)Monitored Users旁的New按鈕,如下圖所示:
在接下來的畫面中將可以選擇你想監(jiān)控哪個(gè)用戶和Force.com服務(wù)器之間的交互,在搜尋畫面中可以點(diǎn)擊放大鏡查找所有用戶,其中Site.com使用類似于“Site Guest User…”類似的匿名賬戶,選擇好后的示意界面如下:
此時(shí)若通過關(guān)注了此微信公開賬號(hào)的微信用戶發(fā)送任意文本到此賬號(hào)后,刷新Debug Logs監(jiān)控頁面及可以在下方看到新增了相應(yīng)的日志:
點(diǎn)擊進(jìn)去既可以看到日志里有我們發(fā)送的文本的XML數(shù)據(jù)包:
這種日志也可以幫助到后續(xù)的調(diào)試。
創(chuàng)建用戶消息處理方法
接下來我們打開之前創(chuàng)建的WeChatRestController類,在里面添加如下方法來響應(yīng)用戶數(shù)據(jù)包
@HttpPost global static void doPost(){ //存儲(chǔ)XML各節(jié)點(diǎn)數(shù)據(jù)變量 String toUserName = ''; String fromUserName = ''; String msgType = ''; String content = ''; //獲取XML數(shù)據(jù)包 RestRequest req = RestContext.request; RestResponse res = RestContext.response; string strMsg = req.requestBody.toString(); XmlStreamReader reader = new XmlStreamReader(strMsg); //解析XML數(shù)據(jù)包,F(xiàn)orce.com這塊的處理能力并不強(qiáng),簡單的結(jié)構(gòu)也需要較多代碼來解析 while(reader.hasNext()){ if(reader.getLocalName() == 'ToUserName'){ reader.next(); if(String.isNotBlank(reader.getText())){ toUserName = reader.getText(); } } else if(reader.getLocalName() == 'FromUserName'){ reader.next(); if(String.isNotBlank(reader.getText())){ fromUserName = reader.getText(); } } else if(reader.getLocalName() == 'MsgType'){ reader.next(); if(String.isNotBlank(reader.getText())){ msgType = reader.getText(); } } else if(reader.getLocalName() == 'Content'){ reader.next(); if(String.isNotBlank(reader.getText())){ content = reader.getText(); } } reader.next(); } }
上述代碼 完成了對(duì)用戶發(fā)送過來數(shù)據(jù)XML包的解析,接下來我們按照http://mp.weixin.qq.com/wiki/index.php?title=%E5%8F%91%E9%80%81%E8%A2%AB%E5%8A%A8%E5%93%8D%E5%BA%94%E6%B6%88%E6%81%AF說明,組織好回復(fù)給用戶的文本消息數(shù)據(jù),這里的回復(fù)數(shù)據(jù)也是XML結(jié)構(gòu),和發(fā)送過來的文本消息XML數(shù)據(jù)結(jié)構(gòu)基本一致,詳情請(qǐng)參看鏈接里騰訊公司的詳細(xì)介紹。下面的代碼將自動(dòng)發(fā)送當(dāng)前的日期時(shí)間給用戶,在前面代碼的While循環(huán)后添加如下代碼:
Datetime dt = System.now(); String returnDT = dt.format('EEEE, MMMM d, yyyy'); String replyMSG = '<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>12345678</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[{2}]]></Content></xml>'; String[] arguments = new String[]{fromUserName, toUserName, rtnMsg}; String formattedReplyMSG = String.format(replyMSG, arguments); RestContext.response.addHeader('Content-Type', 'text/plain'); RestContext.response.responseBody = Blob.valueOf(rtnMsg);
前面代碼需要略微提醒下的是第3行的ToUserName參數(shù)和FromUserName參數(shù)和普通微信用戶發(fā)送來的消息XML數(shù)據(jù)包是反過來的。
保存代碼,此時(shí)普通用戶發(fā)送任何消息到此公眾賬號(hào)都能很快收到當(dāng)前的時(shí)間信息。
以上是“Force.com微信開發(fā)系列值如何處理用戶消息”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享標(biāo)題:Force.com微信開發(fā)系列值如何處理用戶消息-創(chuàng)新互聯(lián)
URL地址:http://jinyejixie.com/article36/dpsgsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、Google、品牌網(wǎng)站設(shè)計(jì)、靜態(tài)網(wǎng)站、App設(shè)計(jì)、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容