如何搭建微信訂閱號後臺服務

微信公衆號後臺自帶的功能可能有時不能滿足我們的需要,這時候我們就需要搭建自己的服務端。本實驗帶您從零開始,基於 NodeJS 搭建起一個可以支撐微信訂閱號自動回覆的服務,包括 HTTP 部署、後臺模塊服務。

微信公衆平臺需要綁定域名的服務器才能正常使用,想學習的同學可以去騰訊雲開發者實驗室免費領取主機進行在線手動實驗。如果打算長期使用,也可以購買一臺服務器。具體如何註冊域名請看下面的步驟。

註冊域名

我們可以在這裏註冊購買自己喜歡的域名,騰訊雲最近也在做優惠活動,最低價格僅1元/年!我們就從中挑選一個吧,這裏我以域名techeek.cn爲例。當我們註冊完域名後,就需要將你的域名解析到你的服務器了。

我們找到雲解析的控制檯,然後點擊添加按鈕,在添加域名框內填寫你剛剛購買的域名,我這裏以techeek.cn爲例。然後點擊確定即可。

添加完成後我們就可以開始解析這個域名了,點擊你購買域名操作中的解析按鈕。在之後頁面中,點擊添加記錄。在之後的頁面中,填寫新的記錄。主機記錄可以隨意填寫,我這裏填寫爲weixin,值得注意的是,這裏填寫的內容就是你域名的二級域名開頭的地址,比如我的一級域名爲techeek.cn,那麼填寫完我的完成域名爲weixin.techeek.cn。接下來,在記錄類型處,如果你指向的爲雲服務器,我們填寫A記錄即可。線路類型我們填寫爲默認,之後在記錄值處填寫你的服務器IP,我這裏服務器的IP是118.119.120.121。那麼我在解析記錄裏填寫118.119.120.121即可,具體如圖。

等解析完成後,我們可以測試下你的域名是否指向了你的服務器,我們在你的Windows電腦上按下Win鍵+R鍵,然後輸入cmd,在彈出的命令提示符窗口中輸入你剛設置的域名,我這裏以weixin.techeek.cn爲例,這裏請改成你自己的域名。

我們檢查返回的IP地址是否爲你剛纔設置的地址,如果是,則證明設置成功,可以開始下一步了。

申請訂閱號

已經有訂閱號的同學也請詳細閱讀本步驟,我們需要註冊開發者賬戶,並獲取相關公衆號認證信息。

申請訂閱號

首先登錄微信公衆平臺官網,點擊左上角的立即註冊,然後在新的頁面中點擊訂閱號按鈕。在新彈出的頁面中填寫你的郵箱、郵箱驗證碼,密碼及確認密碼。然後點擊下一步,在下一步中,運營主體請如實填寫,可以個人運營。接下來,我們就可以開始使用微信訂閱號了。

註冊開發者賬戶

登錄訂閱號之後,我們需要註冊開發者賬戶才能使用服務器來設置公衆號,我們點擊左側菜單欄的開發按鈕。然後找到基本配置,在這裏我們點擊註冊開發者賬戶按鈕,之後我們會看到類似下面的頁面。

註冊完開發者之後,我們就可以配置服務器了。下拉到服務器配置選項,然後點擊右側的配置

獲取微信訂閱號公衆平臺認證字段信息

在彈出的新的頁面中填寫配置,URL填寫爲你剛註冊並綁定服務器的域名,我這裏填寫爲http://weixin.techeek.cn,注意,一定要有http://或者https://開頭。接下來在token處填寫你自己設定的token,內容必須爲英文或者數字,具體內容自行設定。最後在EncodingAESKey處,我們點擊右側的隨機生成即可。

接下來,先不要關閉這個頁面,我們進行下一步!再說一遍!不要關閉!不要點提交!接下來我們需要在服務器端操作,操作完成後再點提交

配置 HTTP 微信訂閱號後臺服務

接下來,我們將用 Node 和 Express 搭建一個 HTTP 服務以供微信訂閱號做後臺服務。我們使用的是Ubuntu Server 16.04.1 LTS系統,如果你和我使用的系統相同,則可以參考我下面的命令進行安裝。

安裝Nodejs和NPM

我們使用sudo apt-get update來更新Ubuntu自帶的apt管理器列表,然後使用sudo apt-get install node-latest npm -y來安裝這Node和npm軟件。

sudo apt-get update
sudo apt-get install nodejs-legacy npm -y

等在幾分鐘,nodejs和npm包管理器就安裝完成了,我們可以通過輸入node -vnpm -v來查看這兩個軟件是否安裝完成,如果輸入和下面類似,則證明已經安裝完成。

ubuntu@VM-0-7-ubuntu:~$ node -v
v4.2.6
ubuntu@VM-0-7-ubuntu:~$ npm -v
3.5.2

安裝Wechat模塊和Express模塊

接下來我們需要安裝配置服務器所需要的Wechat模塊和Express模塊,這裏我們可以使用npm包管理器進行安裝。首先我們創建一個存放我們服務器運行文件的文件夾,這裏我創建在Ubuntu系統默認的目錄/home/ubuntu/下,我們暫時將這個文件命名爲weapps

sudo mkdir /home/ubuntu/weapps
cd /home/ubuntu/weapps

然後,我們在這個文件中創建一個node項目,我們可以使用npm工具來進行創建,輸入下面的命令。

sudo npm init

之後系統會詢問你當前軟件的名稱,我們起名爲app,接下來會詢問版本號等信息,我們一路默認回車即可。

ubuntu@VM-0-7-ubuntu:~/weapps$ sudo npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
​
See `npm help json` for definitive documentation on these fields
and exactly what they do.
​
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
​
Press ^C at any time to quit.
name: (app)
version: (1.0.0)
description:
git repository:
keywords:
author:
license: (ISC)
About to write to /home/ubuntu/weapps/package.json:
​
{
  "name": "app",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": ""
}
Is this ok? (yes)
ubuntu@VM-0-7-ubuntu:~/weapps$

系統會創建一個名爲package.json的文件,我們暫時不管它。接下來我們就可以安裝Wechat模塊和Express模塊了。可以使用下面的命令進行安裝。

sudo npm install wechat express --save

我們需要耐心等待一段時間等待npm安裝完我們設置的這兩個包。這時會多出一個node_modules的文件夾。這就是我們剛安裝Wechat模塊和Express模塊生成的文件夾,我們也暫且不管。

創建服務運行文件

接下來,我們要創建一個可以運行服務的文件,我們將文件創建在/home/ubuntu/weapps目錄下,文件名爲index.js,可以使用下面的命令進行創建。

sudo nano index.js

輸入完這條命令後,在彈出的新頁面,我們將下面的代碼複製到裏面,並修改一些參數。

// 引用 express 來支持 HTTP Server 的實現
const express = require('express');
​
// 引用微信公共平臺自動回覆消息接口服務中間件
var wechat = require('wechat');
​
// 創建一個 express 實例
const app = express();
​
// 配置微信公衆平臺參數,在教程第二步中獲取
var config = {
    token: 'your token', // 填第二步中設置的 `token`
    appid: 'your appid', // 填第二步中獲取的 your appid
    encodingAESKey: 'your encodingAESKey', // 填第二步中獲取的 `encodingAESKey`
    checkSignature: false // 可選,默認爲true。由於微信公衆平臺接口調試工具在明文模式下不發送簽名,所以如要使用該測試工具,請將其設置爲false 
};
​
app.use(express.query());
​
app.use('/', wechat(config, function (req, res, next) {
    res.reply({
        content: '你好,Hello World!',
        type: 'text'
    });
}));
​
// 監聽端口,等待連接
const port = 80;
app.listen(port);
​
// 輸出服務器啓動日誌
console.log(`Server listening at http://127.0.0.1:${port}`);

在創建的文件中,我們需要修改文件中的代碼,將your token填寫爲第二步中你自定的 tokenyour appid填寫爲第二步註冊開發者賬戶後系統分配的appidyour encodingAESKey填寫爲第二步獲取微信訂閱號公衆平臺認證字段信息隨機生產的encodingAESKey,注意將checkSignature設置爲false如圖所示。

然後按下鍵盤上的Ctrl+X鍵,回車後退出即可。正常來說,當前文件夾下應該有這三個文件。

ubuntu@VM-0-7-ubuntu:~/weapps$ ls
index.js  node_modules  package.json

如果沒有,請檢查你的其他步驟是否正確。

啓動服務器

接下來,我們就可以啓動服務器檢查其是否正常運行了。在/home/ubuntu/weapps目錄下,使用下面的命令測試。

sudo node index.js

系統將彈出如下提示

ubuntu@VM-0-7-ubuntu:~/weapps$ sudo node index.js
Server listening at http://127.0.0.1:80

到這一步,我們暫時不要關閉服務器,打開剛剛還沒點擊提交的頁面,然後我們點擊提交按鈕。如果沒有報錯,證明你服務器搭建成功。

測試服務是否成功

因爲我們的代碼設置爲只要有人發送問題,就會自動回覆你好,Hello World!,所以,向你的公衆號發送任意內容,將看到自動回覆,而這個回覆是由你的服務器自動發出的,具體如下。

雖然已經成功了,但是這條服務老是佔用服務器前臺也不是事呀,能不能設置爲後臺呢?可以看看下面的教程。

使用PM2管理器管理Node進程(可選)

PM2是node進程管理工具,可以利用它來簡化很多node應用管理的繁瑣任務,如性能監控、自動重啓、負載均衡等,而且使用非常簡單。我們可以使用下面的命令進行安裝。

sudo npm install pm2 --global

PM2 安裝時間可能稍長,請耐心等候。安裝完成後,使用我們就可以使用 PM2 來啓動 HTTP 服務。

cd /home/ubuntu/weapps
sudo pm2 start index.js

看到下面的內容,則代表你的服務已經啓動,你可以關掉你的ssh頁面了。

要查看服務輸出的日誌,可以使用下面的命令:

sudo pm2 logs

如果要重啓服務,可以使用下面的命令:

sudo pm2 restart index

總結

恭喜!您已經完成了搭建微信訂閱號後臺服務的內容!當然,文中我們給出的代碼僅僅能實現自動回覆功能,更多功能可以參考微信給出的接口權限,去實現客服、羣發、微信門店、微信卡券、微信WIFI等功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章