基于Nodejs构建属于自己的微信公众号
摘要:
微信,庞大的用户基数,极强的用户粘性,在近两年吸引了无数的开发者注意力。 Nodejs,近两年发展非常快的开发工具,尤其适合构建移动后台。本文就以笔者自己开发的实例,来描述如何基于Nodejs开发属于自己的微信公众号。在这个实例中,主要使用到了express, wechat, mongodb, monk等模块。
前期准备:
1. 申请微信公众号, 前往 https://mp.weixin.qq.com/ 申请,这里不做过多阐述。
2. 购买服务器, 这里推荐Amazon的EC2,首次用户可选择micro instance,一年免费,申请很方便,只需输入自己的信用卡信息即可,只是整个过程是全英文,不过
年免费呦,多花点时间也是值得的。
安装NodeJs开发环境:
1. yum -y install gcc 2. yum -y install gcc-c++ 3. yum -y install make automake 4. wget http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz 5. tar -xvzf node-v0.10.29.tar.gz 6. cd 解压目录 7. ./configure 8. make 9. make install
安装Mongodb:
1. wget http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-amzn64-2.6.3.tgz 2. tar -xvzf mongodb-linux-x86_64-enterprise-amzn64-2.6.3.tgz 3. sudo cp -R -n mongodb-linux-x86_64-enterprise-amzn64-2.6.3 /usr/local/mongodb
实例介绍:
构建微信公众号后台服务:
开始之前,先简要介绍下express和wechat 两个模块:
103.7.30.84 POST /wechat?signature=8a8e408fdae6bbdd6e470af98865a5f993cea283×tamp=1408610461&nonce=1572142586 2 200
首先,我们要安装express 并使用express 来创建工程:
1. npm install -g express 2. express -e your_project 参数 -e 表明使用ejs 引擎,无参数默认使用jade 引擎。 3. cd your_project && npm install
安装后的目录结构如下:
[ec2-user@ip-172-31-2-188 your_project]$ ls app.js bin node_modules package.json public routes views
接下来安装wechat:
1. npm install wechat
微信开发者模式配置:
服务器配置(已启用)
微信服务器接入认证和自动回复:
修改app.js,相应代码如下:
</pre><p></p><p><pre name="code" class="javascript">app.use('/', routes);
app.use('/users', users);
app.use('/weixin', weixin);app.use(express.query()); // Or app.use(express.query());
app.use('/wechat', wechat('hchismylove', function (req, res, next) {// 微信输入信息都在req.weixin上var message = req.weixin;console.log(message);if((message.MsgType == 'event') && (message.Event == 'subscribe')){var refillStr = "<a href=\"http://your_IP/weixin/refill?weixinId=" + message.FromUserName + "\">1. 点击记录团队充值</a>"var consumeStr = "<a href=\"http://your_IP/weixin/consume?weixinId=" + message.FromUserName + "\">2. 点击记录团队消费</a>"var deleteStr = "<a href=\"http://your_IP/weixin/delete?weixinId=" + message.FromUserName + "\">3. 点击回退记录</a>" var historyStr = "<a href=\"http://your_IP/weixin/history?weixinId=" + message.FromUserName + "\">4. 点击查询历史记录</a>"var emptyStr = " "; var replyStr = "感谢你的关注!" + "\n"+ emptyStr + "\n" + refillStr + "\n"+ emptyStr + "\n" + consumeStr + "\n"+ emptyStr + "\n" + deleteStr + "\n"+ emptyStr + "\n" + historyStr;res.reply(replyStr);}
}));
通过下面这行代码即可实现微信服务器接入认证:
app.use('/wechat', wechat('your_token', function (req, res, next) {
如下代码实现了当新用户关注时,自动发送使用帮助:
if((message.MsgType == 'event') && (message.Event == 'subscribe'))
{....res.reply(replyStr);
}
微信截图如下:
基于Nodejs构建属于自己的微信公众号相关推荐
- [Nodejs]基于Nodejs构建属于自己的微信公众号
摘要: 微信,庞大的用户基数,极强的用户粘性,在近两年吸引了无数的开发者注意力. Nodejs,近两年发展非常快的开发工具,尤其适合构建移动后台.本文就以笔者自己开发的实例,来描述如何基于Nodejs ...
- 基于 Java Spring Security 的关注微信公众号即登录的设计与实现 ya
太长不看版本 本文通过一个实际的具有一定商业价值的项目,展示了 API 优先的开发方法.通过薅羊毛的方式,落地了 Free Arch 架构. 背景和价值 通过微信公众号积累粉丝并进行商业活动宣传,是新 ...
- 基于TP5、EasyWeChat、fastadmin微信公众号网页授权登录
第一种使用EasyWeChat拉起登录 使用 composer 安装 EasyWeChat $ composer require overtrue/wechat:~5.0 -vvv 或者在compos ...
- 基于Spring Cloud的全自动化微信公众号消息采集系统
前言 由于公司业务需求,需要获取客户提供的微信公众号的历史文章并每天进行更新,三百多个公众号显然不能通过人工去每天查看,问题提交到了IT组.对于热爱爬虫的我肯定要盘他,之前做过搜狗的微信爬虫,后来一直 ...
- PHP微信公众号开发插件,基于ThinkCMF1.5.0开发的微信公众号插件
ThinkCMF升级到了1.5.0,引入的插件机制让我很是心动,于是乎写了这个微信公众号插件,纯属抛砖引玉,水平有限,不喜勿喷.大家可以先关注我的个人订阅号测试下各个小功能. 主要实现的功能有这么几个 ...
- nodejs死亡笔记之实战篇---微信公众号的开发(2)
本篇文章继续讲解微信公众号的开发(不使用第三方微信开发模块) 接收消息 在接收消息之前,我们还需要验证与微信平台的签名,上一篇文章已经讲过了,这里不在详述.现在就来讲解一下接收微信平台的消息.在签名认 ...
- 基于Gin+Vue+ElementUI实现的微信公众号平台系统
项目介绍 一款 Go 语言基于Gin.Xorm.Vue.ElementUI.MySQL等框架精心打造的一款模块化.插件化.高性能的前后端分离架构敏捷开发框架,可快速搭建前后端分离后台管理系统,本着简化 ...
- 记一次企业级爬虫系统升级改造(四):爬取微信公众号文章(通过搜狗与新榜等第三方平台)
首先表示抱歉,年底大家都懂的,又涉及SupportYun系统V1.0上线.故而第四篇文章来的有点晚了些~~~对关注的朋友说声sorry! SupportYun系统当前一览: 首先说一下,文章的进度一直 ...
- 记一次企业级爬虫系统升级改造(四):爬取微信公众号文章(通过搜狗与新榜等第三方平台)...
首先表示抱歉,年底大家都懂的,又涉及SupportYun系统V1.0上线.故而第四篇文章来的有点晚了些~~~对关注的朋友说声sorry! SupportYun系统当前一览: 首先说一下,文章的进度一直 ...
最新文章
- Win10系统下软件UI显示不完整解决方案
- JVM发生频繁 CMS GC,罪魁祸首是这个参数!
- 文件上传 upload-labs 1~20做题记录
- 创建WebSocket服务器
- 利用python从网页查找数据_利用Python模拟淘宝的搜索过程并对数据进行可视化分析...
- 用python为喜欢的人写一个程序,每天发送贴心的消息
- mysql全文搜索实现模糊查询_mysql使用全文索引实现大字段的模糊查询
- .net平台借助第三方推送服务在推送Android消息(极光推送) 转
- sqlmap能测试java么_ibatis框架如何测试?ibatis入门解析
- 两款工控控件对比评测:Iocomp和ProEssentials
- 块状元素(div)与内联元素(span)
- Activiti开发案例之代码生成工作流图片
- KL散度(双向KL散度) JS散度
- 2021全球Top 1000计算机科学家h指数发布,中国53人上榜!Bengio总榜第二,韩家炜居华人首位...
- go mysql 中间件_GitHub - wushilong/go-sharding: Mysql 分库分表中间件
- python风变编程是骗局吗-一个月在风变编程学完了Python基础语法,真香!
- C++使用类和对象(谭浩强9.8-9.14)
- OCR(图片识别)之 百度 VS 谷歌
- 服务器返回json中显示403,接口返回了403错误如何解决?
- 高并发核心技术Redis系列(七)--------Jedis操作Redis