詳解NodeJs開(kāi)發(fā)微信公眾號(hào)
古話說(shuō): 萬(wàn)事開(kāi)頭難, 回頭細(xì)想想還真是這樣,在沒(méi)有開(kāi)始做微信公眾號(hào)開(kāi)發(fā)之前我以為它很復(fù)雜,但是學(xué)過(guò)之后只想說(shuō)原來(lái)just so so~
這里是我的項(xiàng)目的github地址: https://github.com/muzishuiji/wechat
下面我就把我的學(xué)習(xí)過(guò)程做一下總結(jié),希望可以幫助到有需要的人兒.粗鄙之見(jiàn),恐有不足,歡迎指教(PS: 在閱讀下文之前,你應(yīng)該對(duì)NodeJs和koa框架有一定的了解,會(huì)編寫(xiě)簡(jiǎn)單的項(xiàng)目,如果不是,建議你暫放這篇文章,來(lái)這里看看)!
我把我們這次的學(xué)習(xí)之旅比做一次烹飪美食的過(guò)程,那么首先,我們要準(zhǔn)備好"烹飪"所需要的素材,如下(由于微信公眾號(hào)的認(rèn)證流程很復(fù)雜,我一肉體凡胎恐無(wú)法解決,所以只有退而求其次,申請(qǐng)測(cè)試公眾號(hào)進(jìn)行開(kāi)發(fā)):
(1) node環(huán)境(我的node版本是8.8.0,npm 版本是4.5.2, windows系統(tǒng))
(2) 一個(gè)微信開(kāi)放平臺(tái)的賬號(hào)
(3) 一臺(tái)服務(wù)器(嗯哼?沒(méi)有,我們有ngrok內(nèi)網(wǎng)穿透)
額,似乎就沒(méi)有啥了,接下來(lái),我們就要開(kāi)始了,新鮮美味即將出爐,好激動(dòng),有木有?
首先,我們不得不大致了解一下這枯燥無(wú)味的開(kāi)發(fā)者文檔,如果你實(shí)現(xiàn)看不進(jìn)去也不要緊,和我一起,需要的時(shí)候再去看也行.
1.使用koa搭建一個(gè)后臺(tái)服務(wù)器,以下是我的入口文件和文件目錄截圖

//項(xiàng)目中用到的模塊都可在項(xiàng)目文件的package.json中查看, 你可以一次向安裝,也可以用到的時(shí)候再安裝.
2.接入微信公眾平臺(tái)及開(kāi)發(fā)
微信公眾號(hào)的開(kāi)發(fā)說(shuō)白了就是我們搭建的服務(wù)器和微信服務(wù)器進(jìn)行交互,我們的服務(wù)器根據(jù)需要調(diào)用微信開(kāi)放平臺(tái)提供的相關(guān)接口,然后微信服務(wù)器在接收到我們服務(wù)器發(fā)送的請(qǐng)求后,會(huì)進(jìn)行處理并將相關(guān)結(jié)果返回給微信公眾號(hào)的客戶端,從而實(shí)現(xiàn)相關(guān)功能.
點(diǎn)擊綁定測(cè)試號(hào),進(jìn)入一個(gè)綁定測(cè)試號(hào)的表單頁(yè),然后點(diǎn)擊查看appID,得到接入認(rèn)證需要的appID和appSecret,可以暫時(shí)不綁定,不影響測(cè)試.

然后一起來(lái)看文檔

這就是接入微信公眾平臺(tái)開(kāi)發(fā)的相關(guān)文檔,在這過(guò)程中,我們需要一個(gè)代理域名來(lái)映射到我們本地的服務(wù)器,已使得微信的服務(wù)器可以通過(guò)域名與我們的本地服務(wù)器進(jìn)行數(shù)據(jù)通信.
現(xiàn)在假設(shè)你已經(jīng)有了一個(gè)代理(如果沒(méi)有,先去看3),接下來(lái),微信接入驗(yàn)證.

接入示例代碼:
我所有用到的配置項(xiàng)都下載cofig文件夾下的cofig.js里

然后在router文件夾下的index.js中應(yīng)用配置項(xiàng),編寫(xiě)路由的相關(guān)處理邏輯,代碼如下:

這些都編寫(xiě)完畢就可以去微信開(kāi)放平臺(tái)修改你測(cè)試公眾號(hào)的相關(guān)配置了,修改完成后點(diǎn)擊提交,知道看到配置成功的提示就說(shuō)明修改成功了.因?yàn)槭褂玫氖谴矸?wù)器,所以有一兩次配置失敗屬正常現(xiàn)象.

接下里,你就可以獲取access_token,調(diào)用相關(guān)接口,實(shí)現(xiàn)功能了.
3.使用ngrok進(jìn)行內(nèi)網(wǎng)轉(zhuǎn)發(fā)
首先去這個(gè)網(wǎng)站 https://ngrok.com/ 下載一個(gè)跟你操作系統(tǒng)相匹配的ngrok.exe,放到一個(gè)比較好找的地方.
然后運(yùn)行你搭建的本地服務(wù)器,然后在你存放ngrok.exe的文件夾下,打開(kāi)命令行窗口,執(zhí)行一下命令就可以得到一個(gè)代理域名.(具體命令由系統(tǒng)決定)
.\ngrok.exe http <你的node服務(wù)器的端口號(hào)>
然后將你得到的域名,執(zhí)行成功后的截圖,成功后轉(zhuǎn)去 2

好了,已成功接入微信公眾平臺(tái),火已經(jīng)開(kāi)了,油也已經(jīng)熱了,可以放菜了.
相關(guān)文章
利用Node.JS實(shí)現(xiàn)郵件發(fā)送功能
其實(shí)利用Node.JS實(shí)現(xiàn)郵件發(fā)送這個(gè)功能很多人都寫(xiě)過(guò)了,但是網(wǎng)上有的代碼不能用,版本較老,所以想著寫(xiě)下自己摸索的方法來(lái)實(shí)現(xiàn)。現(xiàn)在分享給大家,感興趣的朋友們可以一起學(xué)習(xí)學(xué)習(xí)。2016-10-10
創(chuàng)建簡(jiǎn)單的node服務(wù)器實(shí)例(分享)
下面小編就為大家?guī)?lái)一篇?jiǎng)?chuàng)建簡(jiǎn)單的node服務(wù)器實(shí)例(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
Nodejs進(jìn)階之服務(wù)端字符編解碼和亂碼處理
這篇文章主要介紹了Nodejs進(jìn)階之服務(wù)端字符編解碼和亂碼處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
Node.js如何快速導(dǎo)出多表頭的excel文件實(shí)現(xiàn)方法
這篇文章主要為大家介紹了Node.js如何快速導(dǎo)出多表頭的excel文件實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
node.js中的path.dirname方法使用說(shuō)明
這篇文章主要介紹了node.js中的path.dirname方法使用說(shuō)明,本文介紹了path.dirname的方法說(shuō)明、語(yǔ)法、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
配置node服務(wù)器并且鏈接微信公眾號(hào)接口配置步驟詳解
這篇文章主要介紹了配置node服務(wù)器并且鏈接微信公眾號(hào)接口配置步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06

