詳解NodeJs開發(fā)微信公眾號(hào)
古話說: 萬事開頭難, 回頭細(xì)想想還真是這樣,在沒有開始做微信公眾號(hào)開發(fā)之前我以為它很復(fù)雜,但是學(xué)過之后只想說原來just so so~
這里是我的項(xiàng)目的github地址: https://github.com/muzishuiji/wechat
下面我就把我的學(xué)習(xí)過程做一下總結(jié),希望可以幫助到有需要的人兒.粗鄙之見,恐有不足,歡迎指教(PS: 在閱讀下文之前,你應(yīng)該對(duì)NodeJs和koa框架有一定的了解,會(huì)編寫簡單的項(xiàng)目,如果不是,建議你暫放這篇文章,來這里看看)!
我把我們這次的學(xué)習(xí)之旅比做一次烹飪美食的過程,那么首先,我們要準(zhǔn)備好"烹飪"所需要的素材,如下(由于微信公眾號(hào)的認(rèn)證流程很復(fù)雜,我一肉體凡胎恐無法解決,所以只有退而求其次,申請(qǐng)測(cè)試公眾號(hào)進(jìn)行開發(fā)):
(1) node環(huán)境(我的node版本是8.8.0,npm 版本是4.5.2, windows系統(tǒng))
(2) 一個(gè)微信開放平臺(tái)的賬號(hào)
(3) 一臺(tái)服務(wù)器(嗯哼?沒有,我們有ngrok內(nèi)網(wǎng)穿透)
額,似乎就沒有啥了,接下來,我們就要開始了,新鮮美味即將出爐,好激動(dòng),有木有?
首先,我們不得不大致了解一下這枯燥無味的開發(fā)者文檔,如果你實(shí)現(xiàn)看不進(jìn)去也不要緊,和我一起,需要的時(shí)候再去看也行.
1.使用koa搭建一個(gè)后臺(tái)服務(wù)器,以下是我的入口文件和文件目錄截圖
//項(xiàng)目中用到的模塊都可在項(xiàng)目文件的package.json中查看, 你可以一次向安裝,也可以用到的時(shí)候再安裝.
2.接入微信公眾平臺(tái)及開發(fā)
微信公眾號(hào)的開發(fā)說白了就是我們搭建的服務(wù)器和微信服務(wù)器進(jìn)行交互,我們的服務(wù)器根據(jù)需要調(diào)用微信開放平臺(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)的表單頁,然后點(diǎn)擊查看appID,得到接入認(rèn)證需要的appID和appSecret,可以暫時(shí)不綁定,不影響測(cè)試.
然后一起來看文檔
這就是接入微信公眾平臺(tái)開發(fā)的相關(guān)文檔,在這過程中,我們需要一個(gè)代理域名來映射到我們本地的服務(wù)器,已使得微信的服務(wù)器可以通過域名與我們的本地服務(wù)器進(jìn)行數(shù)據(jù)通信.
現(xiàn)在假設(shè)你已經(jīng)有了一個(gè)代理(如果沒有,先去看3),接下來,微信接入驗(yàn)證.
接入示例代碼:
我所有用到的配置項(xiàng)都下載cofig文件夾下的cofig.js里
然后在router文件夾下的index.js中應(yīng)用配置項(xiàng),編寫路由的相關(guān)處理邏輯,代碼如下:
這些都編寫完畢就可以去微信開放平臺(tái)修改你測(cè)試公眾號(hào)的相關(guān)配置了,修改完成后點(diǎn)擊提交,知道看到配置成功的提示就說明修改成功了.因?yàn)槭褂玫氖谴矸?wù)器,所以有一兩次配置失敗屬正?,F(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的文件夾下,打開命令行窗口,執(zhí)行一下命令就可以得到一個(gè)代理域名.(具體命令由系統(tǒng)決定)
.\ngrok.exe http <你的node服務(wù)器的端口號(hào)>
然后將你得到的域名,執(zhí)行成功后的截圖,成功后轉(zhuǎn)去 2
好了,已成功接入微信公眾平臺(tái),火已經(jīng)開了,油也已經(jīng)熱了,可以放菜了.
相關(guān)文章
搭建一個(gè)Koa后端項(xiàng)目腳手架的方法步驟
這篇文章主要介紹了搭建一個(gè)Koa后端項(xiàng)目腳手架的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05module.exports和exports使用誤區(qū)案例分析
module.exports和exports使用誤區(qū),使用require()模塊時(shí),得到的永遠(yuǎn)都是module.exports指向的對(duì)象2023-04-04在Node.js下運(yùn)用MQTT協(xié)議實(shí)現(xiàn)即時(shí)通訊及離線推送的方法
這篇文章主要介紹了在Node.js下運(yùn)用MQTT協(xié)議實(shí)現(xiàn)即時(shí)通訊及離線推送的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01使用nodejs開發(fā)cli項(xiàng)目實(shí)例
這篇文章主要介紹了使用nodejs開發(fā)cli項(xiàng)目實(shí)例,本文講解使用generator-cli-starter實(shí)現(xiàn)cli項(xiàng)目的開發(fā),需要的朋友可以參考下2015-06-06nodejs 十六進(jìn)制字符串型數(shù)據(jù)與btye型數(shù)據(jù)相互轉(zhuǎn)換
這篇文章主要介紹了nodejs 十六進(jìn)制字符串型數(shù)據(jù)與btye型數(shù)據(jù)相互轉(zhuǎn)換,需要的朋友可以參考下2018-07-07