node 跑通 微信公众号 开发者功能
关键字: node express 服务器 域名 centos 微信公众号 自定义 开发 nginx
文末 扩展 有惊喜!!! 好玩的功能
文末 扩展 有惊喜!!!好玩的功能
文末 扩展 有惊喜!!!好玩的功能
一文 扫除 搭建微信公众号环境的 易错点。从外太空 到内xx 的扫盲教程。
请注意 关键是 流程的跑通,不是 最终功能的实现。
最终演示结果 1
随便输入文字,公众号 返回当前的时间
最终演示结果2
试玩演示
流程说明
要跑通整个流程,需要经历以下几步
- 开通云服务器
- 注册域名
- 申请备案
- 编写 node 后台代码 验证token非法性
- 服务器上部署代码
- 公众号开启 服务器配置
- 测试 公众号功能
云服务器域名开通过程
开通 腾讯云服务器
因为公众号最终是要面向外网使用的,那么就必须要有一台对外的服务器,推荐使用云服务器(自己做过内网穿透映射也可以,但是不方便)。
云服务器 推荐 腾讯云 和 阿里云。因为 微信公众号是腾讯云的,所以强烈推荐腾讯云。
新用户或者大学生都有优惠,最便宜的配置 大概20元一个月,不同时期不同活动。
注册账号
以下随便哪种都行。
购买服务器
注册成功后,进行登录,然后选购服务器。地域
推荐选择 广州 备案起来更方便。
购买成功后,可以看到如下界面
选购域名
因为服务器对外使用,要么直接用ip,要么绑定一个域名,而微信公众号必须要绑定域名,因此,提前注册一个域名吧。
需要注意的是 xyz club
等域名 首年便宜,后几年贵,如果长期使用,还是建议 com cn
这类域名。
域名解析
域名选购成功后,还不能马上使用,要进行解析。进入到域名管理页面。 选择你购买好的域名,点击 解析
添加解析记录
www
可以解析 如www.baidu.com
这样@
可以解析baidu.com
*
泛域名,可以解析很多 如wx.baidu.com
api.baidu.com
...方便后期自己扩展- 其他。。
填写完毕之后,需要等待十分钟,才可以生效。
在生效的几天之内,是可以直接用域名来访问到你的服务器的,如果要长期顺利使用,就必须要备案域名
备案域名
在国内要用域名访问服务器,就必须要备案。
备案的途径目前两种
-
电脑上备案,比较繁琐,还有腾讯那边给你寄一张幕布,然后拍照,再上传,一来一会就好几天了。不推荐
-
在小程序上备案,手机上直接点点点就可以了,相对简单,推荐
需要注意的是 不管是在电脑上还是在小程序上备案,都需要准备如下资料。
-
个人身份证的正反照,清晰一点的
-
要打印纸质的材料,然后手动签名(流程中有提示的)
-
填写网站资料的时候,如果是个人用户,建议如下
- 要留两个自己的手机号码,必须的。
- 个人通信地址要详细到街道,门牌号(目前自己的居住地址)
- 网站的名称,不要写个人博客和其他带有商业性质的,直接写 个人开发学习使用即可
-
其实,资料填错也没有所谓,因为腾讯云北京总部,会反复打电话给你来核实资料和纠正资料的,很贴心,电话结束后都不要记得给小姐姐好评哈,按
1
给好评 ?!!。 -
备案过程,最终是工信部那边审核的,时间有长有短 。30天左右。看你有没有幸被翻牌,早点翻就早点过去。
服务器部署搭建环境
等待域名备案的同时,我们可以来搭建服务器。
作者搭建服务器的环境如下
- centos 7
- nginx
- node express
连接服务器
通过ssh的方式来连接服务器,进行环境安装,工具有很多种,xshell
putty
等。作者这里用的是 xshell
新建连接
文件 > 新建
然后会弹出提示,让你输入用户名和密码
-
用户名 默认是 root
-
密码 是你在选购服务器,选择系统的时候就会进行设置的,假如已经忘记了,可以在腾讯云的后台管理上进行重置
成功登录后,恭喜你,可以看到如下界面
安装nginx
Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器
由于后期我们是通过nginx
来管理服务器的请求和代理node服务器。因此,我们需要先搭建nginx
。
检查系统版本
检查看看是否是 centos 7 命令行中输入
- cat /etc/redhat-release
- 复制代码
提示:
添加 yum 源
yum可以理解为 centos中的360软件管家,是来下载软件和工具的
Nginx 不在默认的 yum 源中,可以使用 epel 或者官网的 yum 源,本例使用官网的 yum 源
- sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- 复制代码
安装nginx
- sudo yum install nginx
- 复制代码
修改配置文件
如要想实现 访问你的域名 例如: wx.baidu.com
便跳转到 你服务器上的某个服务器端口。
wx.baidu.com
->>> 127.0.0.1:9090
由于初学者可能不懂的如何在命令中来编辑文件(其实可以通过vi编辑器来操作),那么为了方便操作,建议使用图形化的工具wincp,就可以类似操作 本地的资源管理器一样。
下载 安装好 wincp
后,新增远程连接
成功登录,便能看到类似的界面
找到配置文件 /etc/nginx/nginx.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;
- }
- }
- 复制代码
如不会配置,则全部复制以下代码,完全替换即可
-
- 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
- sudo systemctl start nginx
- 复制代码
浏览器中输入 wx.baidu.com
可以看到nginx服务器的提示,502是因为 你的 9091没有放如何服务。下一步,开始部署服务。
其他常见命令
设置开机启动
- sudo systemctl enable nginx
- 复制代码
启动服务
- sudo systemctl start nginx
- 复制代码
重启服务
- sudo systemctl restart nginx
- 复制代码
暂停服务
- sudo systemctl stop nginx
- 复制代码
测试配置是否正确(用来检查配置是否ok,能否失效的)
- sudo nginx -t
- 复制代码
重启nginx服务
- sudo nginx -s reload
- 复制代码
部署node后台服务
其实微信公众号对于后台语言并没有什么要求,你只要安装接口约定,做好权限验证,发送的格式不要出错即可。那么我们在这里使用node+express来搭建一个简单的后台服务。
克隆项目
- git clone https://github.com/itcastWsy/wx_public.git
- 复制代码
进入项目
- cd wx_public
- 复制代码
安装依赖
- npm install
- 复制代码
修改token
打开 routes\wxapi.js
下的 第六行 填入你的token
即可。
token
必须为英文或数字,长度为3-32字符。 要自己记住哦!
- var token = "";
- 复制代码
启动项目
- npm run start
- 复制代码
配置微信公众号后台
还剩下最后一步,现在打开微信公众平台,进行登录。
基本设置
登录成功后,在左侧菜单栏,点击 基本配置
需要说明的是 服务器地址,需要填写你之前备案过的域名 如 http://wx.baidu.com
因为我们在express后台中,是加一一层路由嵌套,此时地址就变成。 http://wx.baidu.com/wx
当验证通过时,会弹出如下提示
测试是否成功
此时,打开我们的微信公众号,随便输入消息
至此,大功告成。
拓展
这么情况搭建好的环境,不骚跳一下 对得起自己吗
我们现在通过简单的几个操作,便可以为公众号接入 人工智能 对话!! 而且还是免费的!!!
注册腾讯AI
点击右上角的 控制台 安装提示 即可完成 注册
创建应用
接人 智能闲聊 功能
完成接入
一键接入微信公众号
使用内置功能,一键即可完成接入。
点击授权接入后,接下来扫描二维码即可
测试对话
此时,再回到你的公众号,随便闲聊。 建议此时 关闭 微信公众后台的服务器配置功能