您好,登錄后才能下訂單哦!
這篇文章主要介紹了nodejs微信公眾號(hào)開(kāi)發(fā)之如何實(shí)現(xiàn)自動(dòng)回復(fù)各種消息,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1. 被動(dòng)回復(fù)用戶消息
當(dāng)用戶發(fā)送消息給公眾號(hào)時(shí)(或某些特定的用戶操作引發(fā)的事件推送時(shí)),會(huì)產(chǎn)生一個(gè)POST請(qǐng)求,開(kāi)發(fā)者可以在響應(yīng)包(Get)中返回特定XML結(jié)構(gòu),來(lái)對(duì)該消息進(jìn)行響應(yīng)(現(xiàn)支持回復(fù)文本、圖片、圖文、語(yǔ)音、視頻、音樂(lè))。發(fā)送被動(dòng)響應(yīng)消息是對(duì)微信服務(wù)器發(fā)過(guò)來(lái)消息的一次回復(fù)。
開(kāi)發(fā)過(guò)程中如果遇到該公眾號(hào)暫時(shí)無(wú)法提供服務(wù),請(qǐng)稍后再試
的情況,一般是由兩個(gè)原因造成的:
開(kāi)發(fā)者在5秒內(nèi)未回復(fù)任何內(nèi)容
開(kāi)發(fā)者回復(fù)的數(shù)據(jù)異常,非xml格式,比如JSON數(shù)據(jù)
具體的消息規(guī)則可參看微信平臺(tái)開(kāi)發(fā)者文檔:被動(dòng)回復(fù)用戶消息
2. 回復(fù)消息的實(shí)現(xiàn)
我們之前的關(guān)注自動(dòng)回復(fù)是在weixin.js
里面實(shí)現(xiàn)的,其他的消息回復(fù)也寫(xiě)在這個(gè)文件里面:
if(message.MsgType === 'event'){ if(message.Event === 'subscribe'){ if(message.EventKey) { console.log('掃描二維碼關(guān)注:'+ message.EventKey +' '+ message.ticket); } this.body = '終于等到你,還好我沒(méi)放棄'; }else if(message.Event === 'unsubscribe'){ this.body = ''; console.log(message.FromUserName + ' 悄悄地走了...'); }else if(message.Event === 'LOCATION'){ this.body = '您上報(bào)的地理位置是:'+ message.Latitude + ',' + message.Longitude; }else if(message.Event === 'CLICK'){ this.body = '您點(diǎn)擊了菜單:'+ message.EventKey; }else if(message.Event === 'SCAN'){ this.body = '關(guān)注后掃描二維碼:'+ message.Ticket; } } else if(message.MsgType === 'text'){ var content = message.Content; var reply = '你說(shuō)的話:“' + content + '”,我聽(tīng)不懂呀'; if(content === '1'){ reply = '金剛:骷髏島'; } else if(content === '2'){ reply = { type:'image', mediaId:'http://tu.23juqing.com/d/file/html/gndy/dyzz/2017-04-09/da9c7a64ab7df196d08b4b327ef248f2.jpg' } } else if(content === '3'){ reply = [{ title:'金剛.骷髏島', description:'南太平洋上的神秘島嶼——骷髏島。史上最大金剛與邪惡骷髏蜥蜴的較量。', picUrl:'http://tu.23juqing.com/d/file/html/gndy/dyzz/2017-04-09/da9c7a64ab7df196d08b4b327ef248f2.jpg', url:'http://www.piaohua.com/html/dongzuo/2017/0409/31921.html' //可下載觀看喔 }]; } // ... 其他回復(fù)類型 this.body = reply; }
測(cè)試效果如圖:
3.說(shuō)明:
發(fā)現(xiàn)輸入數(shù)字2并沒(méi)有回復(fù)相應(yīng)的圖片,是不是很奇怪?我們查看一下文檔:
文檔中說(shuō)明了MediaId屬性是通過(guò)素材管理接口上傳多媒體文件,得到的id,而不是我們直接給的網(wǎng)上圖片的url鏈接。在圖文消息中,是可以直接使用url鏈接的。所以我們下一步的工作就是實(shí)現(xiàn)素材管理的接口。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“nodejs微信公眾號(hào)開(kāi)發(fā)之如何實(shí)現(xiàn)自動(dòng)回復(fù)各種消息”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。