最详细的微信公众号搭建一条龙

node 跑通 微信公众号 开发者功能 关键字: node express 服务器 域名 centos 微信公众号 自定义 开发 nginx

一文 扫除 搭建微信公众号环境的 易错点。从外太空 到内xx 的扫盲教程。

请注意 关键是 流程的跑通,不是 最终功能的实现。

最终演示结果 1随便输入文字,公众号 返回当前的时间

1557281861011最终演示结果21557305786822流程说明要跑通整个流程,需要经历以下几步

开通云服务器注册域名申请备案编写 node 后台代码 验证token非法性服务器上部署代码公众号开启 服务器配置测试 公众号功能云服务器域名开通过程开通 腾讯云服务器1557285834108因为公众号最终是要面向外网使用的,那么就必须要有一台对外的服务器,推荐使用云服务器(自己做过内网穿透映射也可以,但是不方便)。

新用户或者大学生都有优惠,最便宜的配置 大概20元一个月,不同时期不同活动。

注册账号以下随便哪种都行。

1557285985239购买服务器注册成功后,进行登录,然后选购服务器。地域 推荐选择 广州 备案起来更方便。

1557286400273购买成功后,可以看到如下界面

1557286461637选购域名因为服务器对外使用,要么直接用ip,要么绑定一个域名,而微信公众号必须要绑定域名,因此,提前注册一个域名吧。

1557286576968需要注意的是 xyz club等域名 首年便宜,后几年贵,如果长期使用,还是建议 com cn这类域名。

域名解析域名选购成功后,还不能马上使用,要进行解析。进入到域名管理页面。 选择你购买好的域名,点击 解析

1557288245171添加解析记录

www 可以解析 如 www.baidu.com 这样@ 可以解析 baidu.com* 泛域名,可以解析很多 如 wx.baidu.com api.baidu.com...方便后期自己扩展其他。。1557288385933填写完毕之后,需要等待十分钟,才可以生效。

在生效的几天之内,是可以直接用域名来访问到你的服务器的,如果要长期顺利使用,就必须要备案域名

备案域名在国内要用域名访问服务器,就必须要备案。

备案的途径目前两种

电脑上备案,比较繁琐,还有腾讯那边给你寄一张幕布,然后拍照,再上传,一来一会就好几天了。不推荐

1557288805265 在小程序上备案,手机上直接点点点就可以了,相对简单,推荐需要注意的是 不管是在电脑上还是在小程序上备案,都需要准备如下资料。

个人身份证的正反照,清晰一点的

要打印纸质的材料,然后手动签名(流程中有提示的)

填写网站资料的时候,如果是个人用户,建议如下

要留两个自己的手机号码,必须的。个人通信地址要详细到街道,门牌号(目前自己的居住地址)网站的名称,不要写个人博客和其他带有商业性质的,直接写 个人开发学习使用即可 其实,资料填错也没有所谓,因为腾讯云北京总部,会反复打电话给你来核实资料和纠正资料的,很贴心,电话结束后都不要记得给小姐姐好评哈,按 1给好评 😄!!。

1557289337568 备案过程,最终是工信部那边审核的,时间有长有短 。30天左右。看你有没有幸被翻牌,早点翻就早点过去。

1557289419371服务器部署搭建环境等待域名备案的同时,我们可以来搭建服务器。

作者搭建服务器的环境如下

centos 7nginxnode express连接服务器通过ssh的方式来连接服务器,进行环境安装,工具有很多种,xshell putty 等。作者这里用的是 xshell

1557290233702新建连接

文件 > 新建

1557290423720然后会弹出提示,让你输入用户名和密码

用户名 默认是 root

密码 是你在选购服务器,选择系统的时候就会进行设置的,假如已经忘记了,可以在腾讯云的后台管理上进行重置

1557290535105成功登录后,恭喜你,可以看到如下界面

1557290619212安装nginx 什么是nginx

Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器

由于后期我们是通过nginx来管理服务器的请求和代理node服务器。因此,我们需要先搭建nginx。

检查系统版本检查看看是否是 centos 7 命令行中输入

代码语言:javascript复制cat /etc/redhat-release 提示:

1557291503414添加 yum 源 yum可以理解为 centos中的360软件管家,是来下载软件和工具的

Nginx 不在默认的 yum 源中,可以使用 epel 或者官网的 yum 源,本例使用官网的 yum 源

代码语言:javascript复制sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm安装nginx代码语言:javascript复制sudo yum install nginx修改配置文件如要想实现 访问你的域名 例如: wx.baidu.com 便跳转到 你服务器上的某个服务器端口。

wx.baidu.com ->>> 127.0.0.1:9090

由于初学者可能不懂的如何在命令中来编辑文件(其实可以通过vi编辑器来操作),那么为了方便操作,建议使用图形化的工具wincp,就可以类似操作 本地的资源管理器一样。

1557292460625下载 安装好 wincp后,新增远程连接

1557292645577成功登录,便能看到类似的界面

1557292682875找到配置文件 /etc/nginx/nginx.conf 添加以下配置

代码语言:javascript复制 # 定义映射到本地的端口 9091

upstream wx{

server 127.0.0.1:9091;

}

# 新增的服务配置

server {

# 监听80端口号

listen 80;

# 监听的域名

server_name wx.baidu.com;

location / {

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# 代理到 本地的 90901端口

proxy_pass http://wx;

}

}如不会配置,则全部复制以下代码,完全替换即可

代码语言:javascript复制user nginx;

worker_processes 1;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events {

worker_connections 1024;

}

http {

include /etc/nginx/mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;

#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d/*.conf;

# 定义映射到本地的端口 9091

upstream wx{

server 127.0.0.1:9091;

}

#新增的服务配置

server {

# 监听80端口号

listen 80;

# 监听的域名

server_name wx.baidu.com;

location / {

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# 代理到 本地的 90901端口

proxy_pass http://wx;

}

}

}编辑好后,启动nginx

代码语言:javascript复制sudo systemctl start nginx浏览器中输入 wx.baidu.com

1557292919767可以看到nginx服务器的提示,502是因为 你的 9091没有放如何服务。下一步,开始部署服务。

其他常见命令设置开机启动

代码语言:javascript复制sudo systemctl enable nginx启动服务

代码语言:javascript复制sudo systemctl start nginx重启服务

代码语言:javascript复制sudo systemctl restart nginx暂停服务

代码语言:javascript复制sudo systemctl stop nginx测试配置是否正确(用来检查配置是否ok,能否失效的)

代码语言:javascript复制sudo nginx -t重启nginx服务

代码语言:javascript复制sudo nginx -s reload部署node后台服务其实微信公众号对于后台语言并没有什么要求,你只要安装接口约定,做好权限验证,发送的格式不要出错即可。那么我们在这里使用node+express来搭建一个简单的后台服务。

克隆项目代码语言:javascript复制git clone https://github.com/itcastWsy/wx_public_api进入项目代码语言:javascript复制cd wx_public安装依赖

代码语言:javascript复制npm install修改token打开 routes\wxapi.js下的 第六行 填入你的token即可。

token 必须为英文或数字,长度为3-32字符。 要自己记住哦!

代码语言:javascript复制var token = "";启动项目代码语言:javascript复制npm run start配置微信公众号后台还剩下最后一步,现在打开微信公众平台,进行登录。

常见帮助文档

基本设置登录成功后,在左侧菜单栏,点击 基本配置

需要说明的是 服务器地址,需要填写你之前备案过的域名 如 http://wx.baidu.com

因为我们在express后台中,是加一一层路由嵌套,此时地址就变成。 http://wx.baidu.com/wx

1557304277023当验证通过时,会弹出如下提示

1557304379567测试是否成功此时,打开我们的微信公众号,随便输入消息

1557281861011至此,大功告成。

拓展这么情况搭建好的环境,不骚跳一下 对得起自己吗

1557304543030我们现在通过简单的几个操作,便可以为公众号接入 人工智能 对话!! 而且还是免费的!!!

1557304890282注册腾讯AI点击右上角的 控制台 安装提示 即可完成 注册

1557305068992创建应用1557305172241接人 智能闲聊 功能1557305224362完成接入

1557305251460一键接入微信公众号使用内置功能,一键即可完成接入。

公众号授权

1557305363871点击授权接入后,接下来扫描二维码即可

1557305403234测试对话此时,再回到你的公众号,随便闲聊。 建议此时 关闭 微信公众后台的服务器配置功能

1557305474544