詳解nodejs微信公眾號(hào)開發(fā)——1.接入微信公眾號(hào)
接入微信公眾號(hào)是開發(fā)的第一步,萬事開頭難,走好第一步,后面的路就更寬廣。
1.公眾平臺(tái)測(cè)試帳號(hào)的使用
登錄微信公眾平臺(tái),由于很多開發(fā)人員并沒有認(rèn)證的的微信公眾號(hào),所以比較折中的方式是使用公眾平臺(tái)測(cè)試帳號(hào)來測(cè)試功能,其優(yōu)勢(shì)是能夠測(cè)試微信公眾號(hào)的絕大部分功能,不受認(rèn)證門檻的限制。

進(jìn)入測(cè)試賬號(hào)管理界面:
我們需要配置接口的信息,URL和Token是微信公眾平臺(tái)和本地開發(fā)服務(wù)建立連接的橋梁。

微信配置好后,掃面下方的測(cè)試號(hào)二維碼,即可以在手機(jī)上測(cè)試開發(fā)的功能。

2.驗(yàn)證公眾號(hào)

一圖勝千言。接入公眾號(hào)時(shí),微信公眾平臺(tái)需要驗(yàn)證開發(fā)者的身份,向開發(fā)者填寫的URL發(fā)送一個(gè)GET請(qǐng)求,請(qǐng)求中包含4個(gè)參數(shù):signature、echostr、timestamp和nonce,收到該請(qǐng)求,我們需要做的事情:
- 將
token、timestamp和nonce三個(gè)參數(shù)進(jìn)行字典排序; - 將三個(gè)字符串拼接成一個(gè)字符串進(jìn)行sha1加密;
- 將加密后的字符串與
signature進(jìn)行比較,如果相同,表示這個(gè)請(qǐng)求來自微信,我們直接原樣返回echostr的內(nèi)容,接入驗(yàn)證成功。
3.搭建開發(fā)服務(wù)器
搭建開發(fā)服務(wù)器的方式有很多,如購買云服務(wù)器、使用花生殼、ngrok、localtunnel等。這里為了簡單起見采用localtunnel。先全局方式安裝localtunnel,
npm install -g lt
啟動(dòng)lt
lt --port 8080 //對(duì)外暴露8080端口,可端口號(hào)可自己隨便設(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.配置測(cè)試公眾號(hào)信息
代碼編寫完畢,現(xiàn)在開始正式配置啦。在終端中輸入lt --port 8080啟動(dòng)localtunnel,得到對(duì)外可訪問的URL:

這個(gè)URL填寫到測(cè)試賬號(hào)管理界面中的URL,Token字段可隨意填寫,方便起見,就用wemovie吧!
填寫完畢,點(diǎn)擊提交,發(fā)現(xiàn)驗(yàn)證成功,恭喜!

注:
- 由于localtunnel不是很穩(wěn)定,所以可能一開始點(diǎn)擊
提交提示的是黃條的配置失敗,需要多點(diǎn)一兩次按鈕; - 每次重啟程序,都需要重啟localtunnel獲取新的
URL,然后重新配置。(這就是選擇簡單付出的代價(jià)T_T)
到此為止,已經(jīng)打開了通向微信公眾號(hào)開發(fā)的大門,接下來,我們將繼續(xù)探索nodejs微信公眾號(hào)開發(fā)之旅。以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- NodeJS實(shí)現(xiàn)微信公眾號(hào)關(guān)注后自動(dòng)回復(fù)功能
- 詳解nodejs微信公眾號(hào)開發(fā)——6.自定義菜單
- 詳解nodejs微信公眾號(hào)開發(fā)——5.素材管理接口
- 詳解nodejs微信公眾號(hào)開發(fā)——4.自動(dòng)回復(fù)各種消息
- 詳解nodejs微信公眾號(hào)開發(fā)——3.封裝消息響應(yīng)模塊
- 詳解nodejs微信公眾號(hào)開發(fā)——2.自動(dòng)回復(fù)
- nodejs微信公眾號(hào)支付開發(fā)
- 使用NodeJs 開發(fā)微信公眾號(hào)(三)微信事件交互實(shí)例
- 使用Nodejs開發(fā)微信公眾號(hào)后臺(tái)服務(wù)實(shí)例
- 詳解NodeJs開發(fā)微信公眾號(hào)
相關(guān)文章
node實(shí)現(xiàn)shell命令管理工具及commander.js學(xué)習(xí)
這篇文章主要為大家介紹了node實(shí)現(xiàn)shell命令管理工具及commander.js學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Express實(shí)現(xiàn)Session身份認(rèn)證的示例代碼
本文主要介紹了Express實(shí)現(xiàn)Session身份認(rèn)證的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
node.js中express中間件body-parser的介紹與用法詳解
這篇文章主要給大家介紹了關(guān)于node.js中express中間件body-parser的相關(guān)資料,文章通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05
Node.js利用js-xlsx處理Excel文件的方法詳解
這篇文章主要給大家介紹了關(guān)于Node.js利用js-xlsx處理Excel文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-07-07
基于NodeJS的前后端分離的思考與實(shí)踐(六)Nginx + Node.js + Java 的軟件棧部署實(shí)踐
關(guān)于前后端分享的思考,我們已經(jīng)有五篇文章闡述思路與設(shè)計(jì)。本文介紹淘寶網(wǎng)收藏夾將 Node.js 引入傳統(tǒng)技術(shù)棧的具體實(shí)踐。2014-09-09
Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型詳解
這篇文章主要為大家介紹了Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
為nuxt項(xiàng)目寫一個(gè)面包屑cli工具實(shí)現(xiàn)自動(dòng)生成頁面與面包屑配置
這篇文章主要介紹了為nuxt項(xiàng)目寫一個(gè)面包屑cli工具實(shí)現(xiàn)自動(dòng)生成頁面與面包屑配置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
NodeJS?GRPC?多個(gè)?.proto?文件的處理步驟
本文教程詳細(xì)介紹了在NodeJS環(huán)境中如何使用gRPC框架處理多個(gè).proto文件,步驟包括安裝依賴、定義.proto文件、生成gRPC代碼、實(shí)現(xiàn)服務(wù)器和客戶端以及運(yùn)行,適用于開發(fā)者在構(gòu)建分布式應(yīng)用時(shí)進(jìn)行接口定義和服務(wù)實(shí)現(xiàn)2024-10-10

