Node.js+Koa开发微信公众号个人笔记(一)准备工作
本人也是在学习过程中,所以文章只作为学习笔记,如果能帮到你,那就更好啦~当然也难免会有错误,请不吝指出~
一、准备工作
1、本人学习教程:慕课网Scott老师的《Node.js七天搞定微信公众号》 ,但是有点小贵,经济条件允许的话可以支持一下。
2、文档:微信开发官方文档,必备。https://mp.weixin.qq.com/wiki
3、微信开发测试号:测试公众号,必备。https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
4、云服务器:本人使用的是阿里云ECS,我是不建议使用ngrok这类的工具,太麻烦了,有个云服务器后一劳永逸!想弄的话可以看一下我以前的一篇文章http://www.cnblogs.com/zczhangcui/p/6789094.html
5、域名:有了服务器和外网IP后,没有域名好像也可以进行,我是买了个域名并进行了备案,备案耗时较长,我是在云网买的,建议买之前看看域名在国内能不能备案。
6、开发工具:mac + chrome + sublime + 手机,当然都不是必须的。sublime使用sftp插件向云服务同步代码,很方便。
二、框架选择
这里使用了Node.js的Koa框架的1.2版本,Node版本为7.6.
至于为什么Koa2都有了还要用Koa1.2,当然是跟着教程来的,为了减小入门成本,所以选择了与教程一致的版本。_(:з」∠)_
三、目录结构
这里目录的生成使用了koa-generator快速生成。https://github.com/17koa/koa-generator
四、接入微信服务器
首先进入测试号页面,如下图
其中接口配置信息需要填写你的服务器URL,Token是自己填写的验证信息,内容随意。在提交之前,需要在服务器端进行配置。说白了,这个过程就是向微信证明“你(填写的服务器地址)是你”。
五、配置服务器,完成接入
在此之前,必须阅读微信开发文档,了解接入过程!
接下来直接上代码:
首先使用koa-generator或者生成项目目录,之后使用npm install 安装依赖。
在routes下的index中进行如下修改:
var router = require('koa-router')();
var index_middleware = require('../wechat/index_middleware');
var config = require('../wechat/config'); router.get('/', index_middleware.get(config.wechat)); module.exports = router;
接下来实现index_middleware和config。
wechat/config.js:
module.exports = {
wechat: {
appID: 'xxxxxx',
appSecret: 'xxxxxxxxxxxxxxx',
token: 'xxxxxxx'
}
};
这里面的信息根据你自己的测试号进行填写。
wechat/index_middleware.js:
var sha1 = require('sha1'); exports.get = function(opts) {
return function *(next) {
var token = opts.token;
var signature = this.query.signature;
var nonce = this.query.nonce;
var timestamp = this.query.timestamp;
var echostr = this.query.echostr;
var str = [token, timestamp, nonce].sort().join('');
var sha = sha1(str); if (sha === signature) {
this.body = echostr + '';
}
};
};
完成接入逻辑后,需要npm install sha1 --save 安装sha1加密模块。
建议安装npm install supervisor -g,之后supervisor bin/www启动服务器并监听变化自动重启服务器,这样可以不用每次改动后手动重启服务器。
完成以上步骤后,回到步骤四,对填写的URL进行验证,这时,无意外的话,会出现验证成功,至此该服务器可以作为微信开发服务器了。
Node.js+Koa开发微信公众号个人笔记(一)准备工作的更多相关文章
- Node.js+Koa开发微信公众号个人笔记(二)响应事件
微信公众号中的事件有订阅事件/扫码事件/点击事件/跳转链接事件等等,具体可以查阅文档. 这里来实现一下订阅事件,其他的事件的实现过程也都类似. 当有人订阅了公众号后,微信服务器会向我们的服务器推送一个 ...
- Node.js+Koa开发微信公众号个人笔记(三)响应文本
响应输入文本和响应事件类似,首先对微信服务器发送来的数据的MsgType进行处理,如果是text,说明是文本,接下来可以对文本内容进行处理,比如用户输入了1,可以给用户回复一个文本或者图文或者视频等信 ...
- vue+node.js+webpack开发微信公众号功能填坑——v -for循环
页面整体框架实现,实现小功能,循环出数据,整体代码是上一篇 vue+node.js+webpack开发微信公众号功能填坑--组件按需引入 修改部门代码 app.vue <yd-flexbox&g ...
- vue+node.js+webpack开发微信公众号功能填坑——组件按需引入
初次开发微信公众号,整体框架是经理搭建,小喽喽只是实现部分功能,整体页面效果 整个页面使用两个组件:布局 FlexBox,搜索框 Search,demo文档 http://vue.ydui.org/d ...
- NodeJs 开发微信公众号(一)准备工作
前言 大概是一个月前,自己用业余时间做了一个微信公众号.微信开发,尤其是对后台不熟悉的人来说显得尤其困难.首先要克服的是后台语言(nodejs)的一些不熟悉困难,其次,也是最大的一点困难是在跟微信交互 ...
- C#开发微信公众号-学习笔记
由于最近要做微信服务号的开发,所以开始找相关说明和接口文档开始学,故把学习过程及注意事项记录一下,帮助想学习的快速上手.废话不多少了,直接上干货! 1.申请微信公众号 这个就不需要多说了吧,大家直接照 ...
- 使用vue开发微信公众号下SPA站点的填坑之旅
原文发表于本人博客,点击进入使用vue开发微信公众号下SPA站点的填坑之旅 本文为我创业过程中,开发项目的填坑之旅.作为一个技术宅男,我的项目是做一个微信公众号,前后端全部自己搞定,不浪费国家一分钱^ ...
- Vue开发微信公众号默认背景为灰色
最近公司有一个项目,使用Vue开发微信公众号,开发过程遇到一个问题,即设计图的整体背景是白色的,但是公众号里默认的背景是浅灰色,如果某个页面高度没能占满一屏,就会露出浅灰色的默认背景,会显得很不协调. ...
- vux+vuex+vue+Es6开发微信公众号的坑
初次开发微信公众号遇到很多问题,可能是基础不怎么牢靠,最近几天一直在看vue的东西,现在就来慢慢介绍vux和vue这个骚东西的用法: 细看文档一步步来, npm install vux --save ...
随机推荐
- getaddrinfo 报错 Invalid value for ai_flags
最近改了游戏的网络层代码,运行 Android 版的时候 getaddrinfo 报错 Invalid value for ai_flags. ai_flags 设置如下: struct addrin ...
- 如果你在it院校学习累了,你能干什么?
文章来源i春秋,未经允许不得转载 工具链接https://bbs.ichunqiu.com/portal.php 如果你在国内的it院校累了,有些厌倦了,你该怎么办? 分享一些joke以前 ...
- MyEclipse + Maven开发Web工程的详细配置过程
好久没做Web方面的开发,今天突然想弄弄SpringMVC,因为不久前又学了点Maven觉得非常好,所以在弄SpringMVC这个Web框架时想使用Maven来做,但是问题又来了,我一直是在Eclip ...
- C# GroupBy分组的问题和解决
起因 今天在公司做一个需求的时候,写的是面条代码,一个方法直接从头写到尾,其中用到了GroupBy,且GroupBy的KeySelector是多个属性而不是单个属性. 但是公司最近推行Clean Co ...
- Ubuntu下安装程序的三种方法(转)
引言 在Ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. 一.apt-get方法 ...
- .net core使用NLog+Elasticsearch记录日志
在微服务或分布式系统中,如果将日志作为文件输出,查看系统日志将非常不便:如果将日志保存到数据库中,又不能进行全文搜索.在这里我们将日志输出到ElasticSearch中,借助Kibana再查找日志. ...
- spring cloud+.net core搭建微服务架构:配置中心(四)
前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...
- js 判断 ip
[使用新浪ip接口] 多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=111.202.103.2 ...
- 第四章:Android架构
我们对android有了个大致的了解,知道如何搭建android的环境及简单地写一个HelloWorld程序,而且知道一个android项目包括哪些文件夹和文件及相应的作用.本篇将站在顶级的高度——架 ...
- 深入理解String, StringBuffer, StringBuilder的区别(基于JDK1.8)
String.StringBuffer.StringBuilder都是JAVA中常用的字符串操作类,对于他们的区别大家也都能耳熟能详,但底层到底是怎样实现的呢?今天就再深入分析下这三种字符串操作的区别 ...