詳解nodejs微信公眾號開發(fā)——1.接入微信公眾號
接入微信公眾號是開發(fā)的第一步,萬事開頭難,走好第一步,后面的路就更寬廣。
1.公眾平臺測試帳號的使用
登錄微信公眾平臺,由于很多開發(fā)人員并沒有認(rèn)證的的微信公眾號,所以比較折中的方式是使用公眾平臺測試帳號
來測試功能,其優(yōu)勢是能夠測試微信公眾號的絕大部分功能,不受認(rèn)證門檻的限制。
進入測試賬號管理界面:
我們需要配置接口的信息,URL
和Token
是微信公眾平臺和本地開發(fā)服務(wù)建立連接的橋梁。
微信配置好后,掃面下方的測試號二維碼,即可以在手機上測試開發(fā)的功能。
2.驗證公眾號
一圖勝千言。接入公眾號時,微信公眾平臺需要驗證開發(fā)者的身份,向開發(fā)者填寫的URL發(fā)送一個GET請求,請求中包含4個參數(shù):signature
、echostr
、timestamp
和nonce
,收到該請求,我們需要做的事情:
- 將
token
、timestamp
和nonce
三個參數(shù)進行字典排序; - 將三個字符串拼接成一個字符串進行sha1加密;
- 將加密后的字符串與
signature
進行比較,如果相同,表示這個請求來自微信,我們直接原樣返回echostr的內(nèi)容,接入驗證成功。
3.搭建開發(fā)服務(wù)器
搭建開發(fā)服務(wù)器的方式有很多,如購買云服務(wù)器、使用花生殼、ngrok、localtunnel等。這里為了簡單起見采用localtunnel。先全局方式安裝localtunnel
,
npm install -g lt
啟動lt
lt --port 8080 //對外暴露8080端口,可端口號可自己隨便設(shè)定
4.編寫代碼
好了,現(xiàn)在開始編寫app.js的代碼:
'use strict' var Koa = require('koa'); var sha1 = require('sha1'); var config = { wechat:{ appID:'...', //填寫你自己的appID appSecret:'...', //填寫你自己的appSecret token:'...' //填寫你自己的token } }; var app = new Koa(); app.use(function *(next){ var token = config.wechat.token; var signature = this.query.signature; var nonce = this.query.nonce; var timestamp = this.query.timestamp; var echostr = this.query.echostr; var str = [token,timestamp,nonce].sort().join(''); //按字典排序,拼接字符串 var sha = sha1(str); //加密 this.body = (sha === signature)? echostr + '' : 'failed'; //比較并返回結(jié)果 }); app.listen(8080);
5.配置測試公眾號信息
代碼編寫完畢,現(xiàn)在開始正式配置啦。在終端中輸入lt --port 8080
啟動localtunnel,得到對外可訪問的URL
:
這個URL
填寫到測試賬號管理界面
中的URL
,Token
字段可隨意填寫,方便起見,就用wemovie
吧!
填寫完畢,點擊提交,發(fā)現(xiàn)驗證成功,恭喜!
注:
- 由于localtunnel不是很穩(wěn)定,所以可能一開始點擊
提交
提示的是黃條的配置失敗
,需要多點一兩次按鈕; - 每次重啟程序,都需要重啟localtunnel獲取新的
URL
,然后重新配置。(這就是選擇簡單付出的代價T_T)
到此為止,已經(jīng)打開了通向微信公眾號開發(fā)的大門,接下來,我們將繼續(xù)探索nodejs微信公眾號開發(fā)之旅。以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
node實現(xiàn)shell命令管理工具及commander.js學(xué)習(xí)
這篇文章主要為大家介紹了node實現(xiàn)shell命令管理工具及commander.js學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09Express實現(xiàn)Session身份認(rèn)證的示例代碼
本文主要介紹了Express實現(xiàn)Session身份認(rèn)證的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01node.js中express中間件body-parser的介紹與用法詳解
這篇文章主要給大家介紹了關(guān)于node.js中express中間件body-parser的相關(guān)資料,文章通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-05-05Node.js利用js-xlsx處理Excel文件的方法詳解
這篇文章主要給大家介紹了關(guān)于Node.js利用js-xlsx處理Excel文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-07-07基于NodeJS的前后端分離的思考與實踐(六)Nginx + Node.js + Java 的軟件棧部署實踐
關(guān)于前后端分享的思考,我們已經(jīng)有五篇文章闡述思路與設(shè)計。本文介紹淘寶網(wǎng)收藏夾將 Node.js 引入傳統(tǒng)技術(shù)棧的具體實踐。2014-09-09Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型詳解
這篇文章主要為大家介紹了Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08為nuxt項目寫一個面包屑cli工具實現(xiàn)自動生成頁面與面包屑配置
這篇文章主要介紹了為nuxt項目寫一個面包屑cli工具實現(xiàn)自動生成頁面與面包屑配置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09