前言
基于Ubuntu服务器搭建公众号后端服务,使用了Nodejs进行验证,涉及配置域名,nginx转发等内容。
域名准备
微信公众平台需要配置服务器地址 URL 访问,在实验开始之前,我们要准备域名,可以购买或使用某些免费的域名。
这里我使用了我自己的域名:http://wechat.wangboweb.site。
购买域名后,可以在域名管理中添加域名解析,将要设置的域名添加一个A记录,记录值为服务器公网IP,这样我们的域名就准备好了。
公众号准备
如果没有公众号,需要先在微信公众平台注册公众号。注册好后,进入后台,找到
开发
-基本配置
-服务器配置
,这里会展示后面需要用到的服务器地址、令牌、消息加解密密钥;
这里的域名地址就是上一步中我们绑定的那个域名,令牌的话是自定义的根据要求填写就可以了,加解密密钥是自动生成的。
这里因为环境还没有搭建好,所以保存的时候会提升不能保存,所以先不着急。
到这里,准备工作就做好了,接下来进行环境搭建。
服务器环境安装
-
Nodejs安装
默认安装nodejs的话可能会版本太低,因此这里使用了另外一种方式,也比较简单,其实是就说是设置了安装源,详情可以查看https://github.com/nodesource/distributions
安装命令:
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt-get install -y nodejs
通过这两条命令就可以安装14.x版本的nodejs,npm也会自动安装
查看是否安装成功:
-
Nginx安装
执行安装命令,默认安装路径在/etc/nginx
apt-get install nginx
-
pm2安装
因为后续要使用node服务,所以安装pm2进行持久化服务管理
npm install -g pm2
服务编写
-
新建一个目录/data/weapp:
mkdir /data/weapp
-
进入该目录:
cd /data/weapp
-
新建一个package.json:
touch package.json
,文件内容如下:{ "name": "weapp", "version": "1.0.0", "dependencies": { "express": "^4.17.1", "wechat": "^2.1.0" } }
-
新建一个app.js:
touch app.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', // 填<公众号准备>获取的 `appid` encodingAESKey: 'your encodingAESKey', // 填<公众号准备>获取的 `encodingAESKey` checkSignature: true // 可选,默认为true。由于微信公众平台接口调试工具在明文模式下不发送签名,所以如要使用该测试工具,请将其设置为false }; app.use(express.query()); app.use('/', wechat(config, function (req, res, next) { res.reply({ content: '你好,Hello World!', type: 'text' }); })); // 监听端口,等待连接 const port = 5050; app.listen(port); // 输出服务器启动日志 console.log(`Server listening at http://127.0.0.1:${port}`);
-
安装项目依赖:
npm install --save express wechat
-
启动项目:
pm2 app.js
, 如下图则表示启动成功 -
配置nginx代理
- 进入Nginx配置目录:
cd /etc/nginx/conf.d
- 新建一个wechat.conf 文件:
touch wechat.conf
- 因为Nginx的默认配置中会将conf.d文件夹下的.conf后缀的配置文件都include进去
- 编写wechat.conf文件,内容如下:
server { listen 80; server_name wechat.wangboweb.site; # 你的域名 location / { proxy_pass http://127.0.0.1:5050; # 将访问域名代理到5050端口 } }
- 进入Nginx配置目录:
-
公众号后台配置中添加相关内容,启用即可
-
服务器安全组开启5050 端口供外部访问,因为我的是腾讯云的服务器,配置如下:
测试
对你的公众号发送任意消息,会收到一句你好,Hello World!
的回复,就表示我们的服务已经搭建完成了,可以做后续的操作了。 我这里 你好呀 和原来是接口啊呵呵 的回复是因为我公众号配置了机器人。
总结
到这里,我们的环境就搭建完成啦,整个过程其实也挺简单的,后续就可以进行相关的开发了。
评论区