首頁  >  文章  >  web前端  >  Node.js+Koa開發微信公眾號的實例教程

Node.js+Koa開發微信公眾號的實例教程

零下一度
零下一度原創
2017-06-26 09:18:251945瀏覽

本人也是在學習過程中,所以文章只作為學習筆記,如果能幫到你,那就更好啦~當然也難免會有錯誤,請不吝於指出~

一、準備工作

1、本人學習教學:慕課網Scott老師的《Node.js七天搞定微信公眾號》 ,但是有點小貴,經濟條件允許的話可以支持一下。

2、文件:微信開發官方文檔,必備。

3、微信開發測試號:測試公眾號,必備。

4、雲端伺服器:本人使用的是阿里雲ECS,我是不建議使用ngrok這類的工具,太麻煩了,有個雲端伺服器後一勞永逸!想弄的話可以看一下我以前的一篇文章

5、網域:有了伺服器和外網IP後,沒有網域好像也可以進行,我是買了個網域並進行了備案,備案耗時較長,是在雲網買的,建議買之前看看網域在國內能不能備案。

6、開發工具:mac + chrome + sublime + 手機,當然都不是必須的。 sublime使用sftp插件向雲端服務同步程式碼,很方便。

二、框架選擇

這裡使用了Node.js的Koa框架的1.2版本,Node版本為7.6.

至於為什麼Koa2都有了還要用Koa1 .2,當然是跟著教學來的,為了減少入門成本,所以選擇了與教學一致的版本。 _(:з”∠)_

三、目錄結構

#這裡目錄的生成使用了koa-generator快速產生。

四、存取微信伺服器

先進入測試號頁面,如下圖

#其中介面設定資訊需要填入你的伺服器URL,Token是自己填寫的驗證訊息,內容隨意。在提交之前,需要在伺服器端進行設定。說穿了,這個過程就是向微信證明「你(填寫的伺服器位址)是你」。

五、設定伺服器,完成存取

在此之前,必須閱讀微信開發文檔,了解存取過程

 

接下來直接上程式碼:

先使用koa-generator或產生專案目錄,之後再使用npm install 安裝相依。

在routes下的index中進行如下修改:

var router = require('koa-router')();var index_middleware = require('../wechat/index_middleware');var config = require('../wechat/config');

router.get('/', index_middleware.get(config.wechat));

module.exports = router;

#接下來實作index_middleware和config。

wechat/config.js:

module.exports = {
    wechat: {
        appID: 'xxxxxx',
        appSecret: 'xxxxxxxxxxxxxxx',
        token: 'xxxxxxx'}
};

這裡面的資訊依照你自己的測試號碼填入。

wechat/index_middleware.js:

var sha1 = require('sha1');

exports.get = function(opts) {return function *(next) {var token = opts.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);if (sha === signature) {this.body = echostr + '';
        }
    };
};

#完成存取邏輯後,需要npm install sha1 --save 安裝sha1加密模組。

建議安裝npm install supervisor -g,之後supervisor bin/www啟動伺服器並監聽變更自動重新啟動伺服器,這樣可以不用每次改動後手動重新啟動伺服器。

完成以上步驟後,回到步驟四,對填寫的URL進行驗證,這時,無意外的話,會出現驗證成功,至此該伺服器可以作為微信開發伺服器了。

 

以上是Node.js+Koa開發微信公眾號的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn