手把手教你基于CentOS8搭建微信订阅号后台服务(一)
一、准备域名并完成解析
- 关于域名,我买的是阿里的一个1元/年的廉价域名,同时国内域名都需要备案,当时在这里耽搁了挺久的。
- 域名解析的话,在阿里云官方帮助文档里有。传送门:https://help.aliyun.com/document_detail/29716.html
二、申请微信个人订阅号
- 在微信公众号平台注册开发者账号
- 获取公众平台认证字段信息
- AppID:登入平台,选择 开发-基本配置
- Token:基本配置-服务器配置-修改配置,url填写第一步申请的域名,编一个Token
- EncodingAESKey:随机获取
保留页面,进入下一步
三、搭建HTTP服务
使用Node + Express搭建一个HTTP服务器
安装NodeJS 和 npm
常用的兄弟应该已经装过了,没装过的用下面的代码安装:
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - yum install nodejs -y测试
node -v
出现版本号,说明安装成功。编写 HTTP Server 源码
- 创建工作目录
mkdir -p /data/release/weapp - 进入工作目录
cd /data/release/weapp - 创建 package.json
- 在刚才创建的工作目录创建 package.json,添加我们服务器包的名称和版本号
vim package.json
{ "name":"weapp", "version":"v6.10.3" }
- 创建工作目录
添加 Server 源码
需开放5050端口,官方文档传送门:https://help.aliyun.com/document_detail/25471.html?spm=a2c6h.13066369.0.0.1eec1ecffpabDV&source=5176.11533457&userCode=xbifxhv7&type=copy
-工作目录创建 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}`);
- 运行 HTTP 服务
- 安装PM2:
npm install pm2 --global - 安装Express
cd /data/release/weapp
npm install express --save
- 安装 Wechat
cd /data/release/weapp
npm install wechat --save
- 启动服务
cd /data/release/weapp
pm2 start app.js
- 查看服务输出的日志
pm2 logs - 重启服务
pm2 restart app
我们使用 PM2 来进行 Node 进程的运行、监控和管理 - NPM 仓库在国内访问速度可能不太理想,如果实在太慢可以尝试使用 CNPM 的 Registry 进行安装
npm install pm2 -g --registry=https://r.cnpmjs.org/
四、搭建 Nginx 对外服务
简单来讲,就是做一个外网可以访问的途径。
- 安装 Nginx(我之前宝塔都装过了,这里也可以用命令安装)
yum install nginx -y - 启动 Nginx
nginx
理论上到这就可以域名访问了 - 配置 HTTP 反向代理
Nginx 配置目录在 /etc/nginx/conf.d,我们在该目录创建 wechat.conf
server {
listen 80;
server_name www.example.com; # 改为第一步申请的域名
location / {
proxy_pass http://127.0.0.1:5050;
}
}
nginx -s reload
##在浏览器通过 http 的方式访问你解析的域名来测试 HTTP 是否成功启动
五、使用Server端回复微信消息
- 提交服务端配置
- 我们将第二步微信公众平台中保留的表单提交,同时将 基本配置 - 服务器配置 启用
2.关注、发送与消息回复 - 首先通过二维码关注微信订阅号
- 在聊天界面向微信公众号发送一条消息
- 最终我们会回到一条 你好,Hello World! 的回复
- 我们将第二步微信公众平台中保留的表单提交,同时将 基本配置 - 服务器配置 启用
end
手把手教你基于CentOS8搭建微信订阅号后台服务(一)的更多相关文章
- 使用python django快速搭建微信公众号后台
前言 使用python语言,django web框架,以及wechatpy,快速完成微信公众号后台服务的简易搭建,做记录于此. wechatpy是一个python的微信公众平台sdk,封装了被动消息和 ...
- 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理! 我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...
- 手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理! 我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...
- 手把手教你用vue-cli搭建vue项目
手把手教你用vue-cli搭建vue项目 本篇主要是利用vue-cli来搭建vue项目,其中前提是node和npm已经安装好,文章结尾将会简单提到一个简单的例子.使用vue-cli搭建项目最开始我也是 ...
- 手把手教你使用 VuePress 搭建个人博客
手把手教你使用 VuePress 搭建个人博客 有阅读障碍的同学,可以跳过第一至四节,下载我写好的工具包: git clone https://github.com/zhangyunchencc/vu ...
- 手把手教你用Python搭建自己的量化回测框架【均值回归策略】
手把手教你用Python搭建自己的量化回测框架[均值回归策略] 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的, ...
- SpringCloud学习之手把手教你用IDEA搭建入门项目(二)
本篇博客是承接上一篇<手把手教你用IDEA搭建SpringCloud入门项目(一)>,不清楚的请到我的博客空间查看后再看本篇博客 1)先创建一个Eureka服务注册中心模块,用来作为服务的 ...
- 手把手教你认识并搭建Nginx
手把手教你认识并搭建Nginx Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor ...
- 沉淀,再出发——手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群
手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群 一.准备,再出发 在项目启动之前,让我们看一下前面所做的工作.首先我们掌握了一些Linux的基本命令和重要的文件,其次我们学会 ...
随机推荐
- 教育行业CRM项目开发
项目开发流程 需求分析 存储所有的客户咨询信息 避免重复数据 客户多次跟踪记录 客户来源分析.成单率分析 每个销售只能修改自己的客户信息 报名流程开发 班级 ...
- 3、Entity Framework Core 3.1入门教程-设定字段属性
本文章是根据 微软MVP solenovex(杨旭)老师的视频教程编写而来,再加上自己的一些理解. 视频教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR ...
- quartz表(11张)
/* Navicat Premium Data Transfer Source Server : 本地连接 Source Server Type : MySQL Source Server Versi ...
- Python开发的入门教程(八)-迭代
介绍 本文主要介绍Python中迭代的基本知识和使用 什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Ite ...
- 浅谈 FTP、FTPS 与 SFTP
无论是网盘还是云存储,上传都是一项很简单的操作.那些便捷好用的上传整理工具所用的 FTP 协议到底是什么意义,繁杂的模式又有何区别? 二狗子最近搭建了一个图片分享网站,每天都有好多人在他的网站上传许多 ...
- 微信小程序授权登录--PHP后端接口
由于之前做过公众号的一个开发,所以再开发小程序就没有那么多坑了,在这也记录一下开发过程,以方便后续进行参考. 废话不多说,直接上官方文档,任何使用第三方开发的,不看文档就是耍流氓.小程序开发文档,可以 ...
- springBoot整合spring security+JWT实现单点登录与权限管理--筑基中期
写在前面 在前一篇文章当中,我们介绍了springBoot整合spring security单体应用版,在这篇文章当中,我将介绍springBoot整合spring secury+JWT实现单点登录与 ...
- 20190923-06Linux文件权限类 000 014
文件属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定.在Linux ...
- opentracting+jager分布式链路追踪探索实践
一.Opentracing opentracing通过提供平台无关.厂商无关的API,使得开发人员可以方便地实现追踪系统.opentracing提供了用于运营支撑系统和针对特定平台的辅助程序库,被跟踪 ...
- Spring的循环依赖,学就完事了【附源码】
目录 啥是循环依赖? Spring可以解决循环依赖的条件 Spring如何去解决循环依赖 SpringBean的创建流程 Spring维护的三级缓存 getSingleton getSingleton ...