Node.js微信公众号开发

想运营一个属于自己的自媒体公众号吗?毕业设计不知道选什么技术栈吗?简历中项目经验一栏不够丰富拿不出手吗?又或者,不知道学了Node.js能做什么吗?... ... 你的疑问或许能在这里找到答案——Node.js微信公众号开发。 本套视频包括微信公众号开发者模式调试;接收普通消息和事件消息;被动回复消息;自定义菜单;微信网页授权;推送模板消息提醒;配置和使用微信网页JS-SDK(微信小程序前身)。 参加本课程前,你需要提前具备的知识包括:ES6语法、Node.js、Express.js、Pug模板引擎、HTTP协议、MySQL。
29 课时 关注课程
1
1. 检查开发环境,确保已经安装并配置好Node环境。 2. 使用npm命令创建新项目。 3. 安装express模块。 4. 在VS Code中打开项目。
2
本节视频,学会使用Node.js+Express快速搭建Web服务,并借助ngrok实现内网穿透,让外网可访问本地Web服务
3
本节视频,申请微信公众号,了解在开发模式下公号可以使用哪些接口权限。学会配置测试账号,并实现微信服务的Signature校验算法,打通公众号和我们的服务器。
3-1
本节视频,校验Signature。ngrok工具启动都生成新的URL,熟悉开发前一条龙操作——启动Web服务+启动ngrok+替换新的URL。
4
讲解如何接收微信服务器向开发者服务器发送的XML消息,并以文本消息为例,解析XML中各部分的用途,理解ToUserName(接收方)、FromUserName(发送方)、MsgType(消息类型)、Content(文本消息内容)和MsgId(消息ID)的含义。
4-1
本节视频,借助XML2JS库,将微信服务器POST给我们的XML数据,解析成JS普通对象。
4-2
本节视频,实现一个简单的Echo功能,用户向公众号发送什么文本,公众号就回复什么文本。
4-3
本节视频,一睹公号可接收和处理的全部普通消息类型。除了文本消息,还有语音、图片、视频、地理位置、链接消息。
5
回顾数据库的创建、数据表的创建。演示创建一张存储公众号关注用户的数据表。使用NPM仓库的mysql模块使Node程序与MySQL数据库建立连接,以实现Node程序对数据表进行增删改查的能力。
5-1
当微信用户关注公众号后,在MySQL数据表中插入一条用户数据,主要维护微信用户OpenID,以及统计微信用户的关注状态。
5-2
​本节视频,学会实现当有新的微信用户关注公众号时,在数据表创建一条新记录;当微信用户取消关注公众号时,不删除数据表中的记录而是修改关注状态;当微信用户取消关注后再次关注公众号时,将其数据表中对应的那条记录的关注状态设置为已关注。
6
本节视频,实现关键词检索文章的功能。用户向公众发送文本消息,我们将文本消息作为检索关键词从数据库中检索文章,按浏览量从高到低排序,返回10条数据,每条数据都包含文章的标题和链接地址,并回复给用户一个匹配的文章列表。
7
本节视频,获取Access token。使用Node内置模块的https向微信服务器获取Access token的URL发起GET请求,请求时携带APPID和APPSECRET参数。
7-1
本节视频,学习缓存AccessToken。AccessToken的有效期目前是2小时,并且官方会限制我们获取AccessToken的次数,所以要把AccessToken缓存到数据库中。
7-2
本节视频,学习将获取AccessToken的过程封装成一个函数。函数体内逻辑如下,首先从数据表中拿到AccessToken和它的过期日期,然后判断是否过期。如果还没有过期,则继续使用该数据表中存储的AccessToken。如果已经过期,则从微信服务器请求获取新的AccessToken,并用新AccessToken替换掉数据表中旧的AccessToken,同时更新过期日期。
8
常用关键词建议做成菜单,本节视频,学会通过API创建菜单。
8-1
本节视频,学习如何删除自定义菜单和获取自定义菜单配置信息。经测试,删除菜单后立即生效,创建菜单后,需要等一段时间,或重新关注公众号后菜单才生效。
9
本节视频,学习微信网页授权基础用法。先换取CODE值,然后在微信网页获得用户的OpenID。从本节视频开始,内网穿透工具改用NATAPP,并开始使用微信开发者工具调试微信网页。
9-1
本节视频,学习微信网页授权获取微信用户的基本信息,如openid、昵称、性别、所在地、头像等。
9-2
本节视频,存储网页授权后获取的微信用户基本信息。
9-3
本节视频,我们将在服务端使用session,记录微信网页用户的登录状态以及用户信息,就能减少向微信服务发送获取OpenID和用户信息的请求次数。下节视频,我们将制作一个微信网页,作为个人中心用于展示用户个人信息。
10
本节视频,将学会在Express中使用Pug模板引擎,将数据和Pug模板渲染成HTML文件,最终呈现在客户端浏览器中。认识Pug模板引擎如何与Express搭配使用,为微信网页界面开发打基础。
11
上节视频中,我们将用户个人信息存储到 session 里,在服务端标记用户登录状态。在本节视频,我们将用户信息展示到其个人主页。为了把这个主页设计好,我从 Behance 和 Dribbble 两个设计社区吸收了一些移动端个人主页的设计灵感,结合一个教程公众号的特色,制作出了这个H5个人主页。
12
模板消息让公众号具备了向微信用户主动推送消息通知、提醒的能力。登录提醒;待办事项提醒;站内消息提醒;聊天提醒。打通平台和公众号之间消息提醒机制,借助微信庞大的用户群,用户能第一时间收到平台消息提醒,提升用户的使用体验。
13
微信网页给开发者提供了丰富的API,拍照、录音、分享、界面操作等等。通过这些API,开发者能直接或间接地调用手机的硬件功能。任何功能都应该设置权限,而开发者想要在微信网页中使用这些功能就需要配置权限。本节视频开始第一步,在Node后端获取使用JSAPI所需的票据:jsapi_ticket。它和access_token很类似,也有过期时间限制。所以正好类比着access_token,学习如何获取jsapi_ticket。
13-1
JSAPI_TICKET同ACCESS_TOKEN一样,都是有两个小时的有效期,且接口调用次数超过配额后,将无法再获取。本节视频学习如何缓存JSAPI_TICKET,同时也复习在MySQL数据库中缓存ACCESS_TOKEN的逻辑。
14
想要使用微信网页JS-SDK,调用微信网页中使用各种有趣的API,比如拍照、定位、分享。就需要先验证权限,其实就是“如何证明你是你”。上街视频我们已经获取到非常重要的jsapi_ticket票据,本节视频就来用jsapi_ticket和其他参数一起按照签名算法生成Signature。我们就离在微信网页中使用API更进一步了。
15
模板中引入JS-SDK,使用wx.config()完成配置权限的验证,验证成功后便可使用微信网页特有的API。借助JS-SDK可调用手机系统功能,比如拍照、检测网络类型等,还有调用微信客户端功能,比如扫一扫、浏览相册、微信支付等。本节视频以 getNetworkType 接口检测系统网络类型为例,学习配置和调用JS-SDK接口。
16
*-*-*-*-*--加更--*-*-*-*-*
对前28节视频的补充、修正、更新。
16-1
如果你觉得安装和配置MySQL麻烦且没必要,可以把AccessToken存储到普通JSON文件中。