nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人

這篇文章主要介紹了nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為旺蒼企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站制作,旺蒼網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

這種方式的數(shù)據(jù)流程圖如下:

nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人

  1. 用戶在公眾號(hào)內(nèi)向公眾號(hào)發(fā)送消息

  2. 微信服務(wù)器在接收到用戶發(fā)送消息之后,將消息通過開發(fā)者提供的接口發(fā)送給開發(fā)者服務(wù)器

  3. 開發(fā)者服務(wù)器接收到消息之后,進(jìn)行相關(guān)的業(yè)務(wù)處理之后,將處理結(jié)果返回給微信服務(wù)器

  4. 微信服務(wù)器再通過消息的形式將開發(fā)者服務(wù)器返回的內(nèi)容展示給用戶

原理了解后就開始干活了,本案例以測(cè)試號(hào)為例。

第一步:用express搭建一個(gè)本地服務(wù),并且設(shè)置兩個(gè)接口,分別用來驗(yàn)證接口配置信息接收微信服務(wù)器轉(zhuǎn)發(fā)的用戶信息。接口核心代碼如下:

nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人

可以看到接口路徑都為"/",只是請(qǐng)求方式不同,分別打印請(qǐng)求參數(shù),不做響應(yīng)處理,后面會(huì)設(shè)置。

為了方便記憶將get請(qǐng)求的接口命名為1號(hào)接口,post請(qǐng)求接口命名為2號(hào)接口

2號(hào)接口因?yàn)橐邮誼ml格式的數(shù)據(jù),所以只能用data事件和end事件獲取請(qǐng)求數(shù)據(jù)。

第二步:通過ngrok將本地express服務(wù)暴露到外網(wǎng),具體實(shí)現(xiàn)方法參照這篇文章分享一個(gè)內(nèi)網(wǎng)穿透工具ngrok。

第三步:打開測(cè)試號(hào)接口配置信息頁(yè)面,如圖:

nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人

打印結(jié)果如下:

可以看到我們得到了請(qǐng)求參數(shù),按照官方文檔的要求:配置接口返回echostr說明接口調(diào)通。并且我們這里只是做測(cè)試,省略了加密解密的過程,將1號(hào)接口改成如下代碼:

nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人

代碼相對(duì)于剛開始的設(shè)置,只是添加了一句響應(yīng),重啟本地服務(wù),再次點(diǎn)擊提交按鈕,正確結(jié)果如下:

nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人

第四步:用手機(jī)向測(cè)試公眾號(hào)發(fā)送一條信息,查看2號(hào)接口的打印數(shù)據(jù),如圖:

nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人

可以看到這里接收到的數(shù)據(jù)是xml格式的,并且連續(xù)打印了三次,這里要注意一下,因?yàn)槲覀兊拇a中2號(hào)路由接收到數(shù)據(jù)后,并未響應(yīng)任何信息,微信在五秒之后會(huì)繼續(xù)發(fā)送同樣的請(qǐng)求,一共發(fā)送三次。只有接口返回信息之后,微信服務(wù)器就不會(huì)重復(fù)發(fā)送信息了。

言歸正傳,我們需要將xml格式的數(shù)據(jù)轉(zhuǎn)換為js對(duì)象,這里需要用到了一個(gè)叫做xml2js的npm包,具體使用方式大家去查看官方文檔,很簡(jiǎn)單。將xml2js集成到項(xiàng)目中代碼如下:

nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人

此時(shí)再用手機(jī)向測(cè)試公眾號(hào)發(fā)送信息,打印結(jié)果為:

nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人

拿到格式為js對(duì)象的數(shù)據(jù)后,我們就可以根據(jù)具體的數(shù)據(jù)信息,設(shè)置返回信息了。但是返回的數(shù)據(jù)也要轉(zhuǎn)換成xml格式,這里用到了xml2js的另外一個(gè)方法。一個(gè)完整的2號(hào)接口,接收請(qǐng)求-響應(yīng)數(shù)據(jù)的代碼如下:

nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人

此時(shí)向微信測(cè)試號(hào)發(fā)送一條信息,看看是否有回應(yīng)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

本文題目:nodejs如何開發(fā)一個(gè)微信聊天機(jī)器人
本文鏈接:http://muchs.cn/article30/iepsso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、微信小程序、全網(wǎng)營(yíng)銷推廣網(wǎng)站導(dǎo)航、移動(dòng)網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站

廣告

聲明:本網(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)

成都網(wǎng)站建設(shè)