微信公众号开发实战 | 01:环境配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MiMicoa/article/details/83715464

前言

在本系列的博客中我们将从零开始搭建一个基于Node.jsKoa2框架的微信公众号后台。读者最好具备一定的后台开发经验和微信公众号的知识,你可以通过我之前写的这篇文章来了解微信公众号开发的基本原理。本系列教程以实操为主,对于其中涉及到的语言和框架的原理不做赘述,想要深入了解的读者可以阅读相应的官方文档。博客中的代码对应的github地址在这里,在开发过程中遇到任何问题可以加入开发者QQ群(821707649)进行讨论。

配置Node开发环境

以下操作在Mac操作系统中完成,对于Linux系统,相应的流程大致相同;对于Windows用户,对应的文档中也有相应的步骤,本博客中不再赘述。

安装Node.js

Nodejavascript的一种运行时环境,也是近年来非常流行的一门技术。安装Node.js的最佳方式是使用nvm。在命令行输入

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash

这条命令通过curl下载install.sh脚本,并执行脚本。待执行完成后,它会把nvm命令的执行路径放到**~/.bashrc文件里,我们可以用cat**命令来查看一下

$ cat ~/.bashrc

export NVM_DIR="/Users/gao-yimei/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

确认存在以上配置后,通过执行source命令来使得环境变量生效

$ source ~/.bashrc

至此我们就把nvm安装好了,可以通过以下命令查看nvm版本号

$ nvm --version
0.29.0

如果能正确打印出版本信息就证明nvm已经安装成功。接着通过执行以下命令来安装Node.js

$ nvm install node

如果安装期间遇到权限问题,可以改用sudo的方式重新运行。

安装完成后,在命令行键入

$ node -v
v8.7.0

博主使用的node版本的v8.7.0,建议使用不低于此版本的node进行开发,以免产生兼容性问题。

安装TypeScript

TypeScriptJavaScript类型的超集,可以编译成纯的JavaScript代码。通过使用TypeScript我们能够使用最新的ES6语法和JavaScript特性进行开发,提高开发效率,降低复杂度。

可以通过npm来安装TypeScript。npm是node的包管理工具,在使用nvm安装node时已经一并安装好了npm。使用以下命令安装TypeScript:

$ npm install -g typescript

安装完成后,我们可以使用tsc命令来对以.ts为后缀名的文件进行编译,得到对应的.js文件。关于TypeScript的更多内容可以参考官方文档

安装localtunnel

localtunnel是一个内网穿透工具,能够将内网中的主机暴露到公网中,在微信开发过程中我们需要告诉微信平台我们服务所在的域名地址,通过localtunnel可以很方便地将本机上的一个端口映射到一个指定的域名上,从而进行开发。通过以下命令安装localtunnel

$ npm install -g localtunnel  

安装完成后我们可以使用lt命令来暴露端口

$ lt --port 7788
your url is: https://spotty-frog-26.localtunnel.me

这里会打印出一个指定的域名,后面所有指向该地址的请求都会被导向到本机的7788端口。不过这里的域名是由localtunnel分配的,我们无法修改,并且每次重新开启时域名都会改变,有些麻烦,但是作为个人开发来说已经足够了。如果后面需要真正对用户提供服务的话,建议还是准备下自己的域名和相关的服务器资源。

安装IDE

IDE是开发者必不可少的好帮手,能够方便地进行代码的运行和调试,更好地管理整个项目的代码。对于Node开发而言,推荐使用WebStorm这款IDE。可以自行到官网下载安装,这里不再赘述。

实现一个简单的自动回复功能

在完成了以上的环境配置之后,我们就可以正式地开始微信公众号后台的开发。我们选用微信公众平台官方提供的测试账号来开发,这样能够使用全部的接口权限,便于介绍各个功能的实现,免去公众号申请的麻烦。点击微信公众平台测试账号申请页面,微信扫码后即可进入测试号的页面,里面包含了测试号的基本信息(appID和appsecret)。

然后我们就可以进行相应的编程。我们希望实现这样一个功能:用户向公众号发送了一行文本,后台能返回相同的文本。详细的原理分析可以参看我之前写的这篇博客。从github上克隆仓库,切换到对应版本

$ git clone [email protected]:coolboygym/node-wechat-dev.git
$ cd node-wechat-dev
$ git checkout stage1

我们先来看一下整体的代码结构

- config
    - config.ts
- handler
    - wechat.ts
- lib
    - webError.ts
- service
    - wechat.ts
app.ts
package-lock.json
package.json
tsconfig.json

整个项目遵循MVC的设计模式,handler目录存放路由的定义,service目录下是对应的功能实现模块,lib目录存放一些辅助工具,config目录下是所有的配置项信息。app.ts是整个程序的入口,package.json指定了程序依赖的第三方库,后续可以通过npm来安装,tsconfig.json指定了ts命令在将TypeScript编译成JavaScript时所需的一些参数。

实现本功能的主要逻辑在handler/wechat.ts中,包括了认证微信服务器和被动返回文本消息。我们使用的是Koa2框架,该框架采用“洋葱模型”,通过定义不同的中间件来逐层地对web请求进行处理,最终返回相应的处理结果。关于更多Koa2的知识,可以查阅官网

我们可以通过启动该程序来验证整个逻辑。在当前目录下依次运行以下命令

$ npm install
$ tsc
$ node app.js

如果一切正常可以看到程序在7788端口启动。如果发现端口已被其他应用占用,可以在app.ts中修改端口号,重新执行tsc命令进行编译后启动程序。接着另外开启一个终端,运行命令:

$ lt --port 7788
your url is: https://spotty-frog-26.localtunnel.me

打开微信公众平台测试账号的网页,在接口配置信息URL框中填入上面输出的url,在Token框中填入gym20181101,该值可以在config/config.ts中查看。填写完毕后点击提交,可以看到网页提示“配置成功”,说明服务器正确地被访问到了。然后,扫描该网页上的二维码关注公众号,在对话框给公众号发送一句话,可以看到微信公众号回复了同样的话,说明我们正确地实现了自动回复功能。

这里值得注意的是,由于localtunnel的服务器不在国内,因此在访问其域名时会有延迟的现象,如果在配置公众号时提示配置失败,可能是网络中断的原因,可以多试几次。

至此,我们就完成了公众号开发的环境配置,并实现了一个在公众号中自动回复用户消息的功能,虽然没什么实际作用,但已经把整个开发流程走通了。后面我们可以在此基础上,根据微信官方提供的接口,实现更加丰富的功能。敬请期待!


以上就是本文的全部内容,如果您喜欢这篇文章,欢迎将它分享给朋友们。

感谢您的阅读,祝您生活愉快!

作者:小美哥
2018-11-04

猜你喜欢

转载自blog.csdn.net/MiMicoa/article/details/83715464
今日推荐