因为使用了Bot Framework开发了一个小功能,它目前支持了Skype\Teams\Slack等,但在国内来讲,微信还是一个比较流行的软件,所以需要接上微信

原来开发Bot的时候使用的是.Net开发的,这次我决定使用Nodejs开发一个简单的后台程序。

说真的,刚开始的时候没有任何经验,刚开始的时候,还是很辛苦的。

一.注册一个微信公众号(我开始的时候注册了一个个人订阅帐号,才发现似乎接口不支持),推荐使用官方的测试平台(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login),是一个功能完整的测试帐号

二.使用Nodejs开发后台,前提是你的机器已经安装了Nodejs开发环境

如果你本机还未全局安装express,那先使用npm全局安装express

npm install express -g

2.1 选中一个目录,使用express创建一个项目

express WeChat-Bot

这时,在该目录就会产生一个WeChat-Bot的文件夹

2.2在命令行中进入至WeChat-Bot文件夹,安装依赖包(express生成的项目会包含某部分依赖包)并安装wechat

cd WeChat-Bot

npm installnpm install wechat -save

2.3编辑control加入文件wechat.js,并加入代码

var wechat = require('wechat');
var config = {token: 'weixin',//token是你申请测试公众号时候填写的tokenappid: 'wxf6d0ac7f84dc22fb',//appid是申请时,自动生成的,就在最顶部encodingAESKey: 'ZEtViedarf49EUOCDeu45pqhkZhKPFBjSHI2DynP4vq',checkSignature: true // 可选,默认为true。由于微信公众平台接口调试工具在明文模式下不发送签名,所以如要使用该测试工具,请将其设置为false
};//以下开始为获取到微信服务器发送过来的消息,并在此处回复消息
//此处监控的是URL的wechat,那么在配置微信的URL时,也需要在主机URL地址后面加入wechat这样才可以获取到数据
app.use(express.query());
app.use('/wechat', wechat(config, function (req, res, next) {// 微信输入信息都在req.weixin上 var message = req.weixin;
  console.log(message);if(message.MsgType === 'text'){    res.reply('这是一个自动回复');    }else if(message.MsgType === 'voice'){  }else if(message.MsgType === 'image'){res.reply([{title: '文章提示',description: '返回的是文章',picurl: 'http://pic002.cnblogs.com/images/2011/159097/2011102917303125.jpg',url: 'http://doxmate.cool/node-webot/wechat/api.html'}]);}
}));

2.4使用npm运行项目,运行命令后,Nodejs将在本机开发监听3000端口的请求

npm start

三.使用ngrok将本机端口发布至公网

将生成的公网URL复制至公众平台中,为什么在地址后面加入wechat??这是因为Nodejs中,不是监听根目录,而是根目录下的wechat路径,如果监听的是根目录,则在公众号中不需要加入wechat

微信与公众号后台数据交互流程

参考:https://www.npmjs.com/package/wechat   wechat包

http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index  微信公众号测试开发平台

http://www.cnblogs.com/xuange306/p/4971702.html   微信后台开发第一步:nodeJS+express接入微信后台详细教程

转载于:https://www.cnblogs.com/weschen/p/6405436.html

Nodejs微信开发相关推荐

  1. NodeJS微信公众平台开发

    微信是手机用户必备的App,微信最开始只是作为社交通讯应用供用户使用,但随着用户量不断的增加,微信的公众号在微信上表现出来了它强大的一面,微信公众平台具有四大优势:1.平台更加稳固:2.用户关系更加平 ...

  2. SAP系统和微信集成的系列教程之一:微信开发环境的搭建

    系列目录 (1) 微信开发环境的搭建 ( 本文 ) (2) 如何通过微信公众号消费API (3) 微信用户关注公众号之后,自动在SAP C4C系统创建客户主数据 (4) 如何将SAP C4C主数据变化 ...

  3. 关于微信开发与微信支付更新

    1.)微信开发一般就是看文档,按部就班调用API就行,推荐一些SDK .NET https://github.com/JeffreySu/WeiXinMPSDK JAVA http://git.osc ...

  4. 视频教程-【三月】微信小程序云开发项目实战课程 - T3租机械-微信开发

    [三月]微信小程序云开发项目实战课程 - T3租机械 宁夏酷申科技有限公司技术总监,计算机专业毕业后一直从事技术开发和架构工作 袁永刚 ¥366.00 立即订阅 扫码下载「CSDN程序员学院APP」, ...

  5. java微信附件下载_WxJava微信开发工具包

    下面我们对WxJava微信开发工具包文件阐述相关使用资料和WxJava微信开发工具包文件的更新信息. WxJava微信开发工具包 WxJava微信开发Java开发工具包(SDK),支持包括微信支付.微 ...

  6. Java企业微信开发_00_源码及资源汇总贴

    一.源码 此系列教程的源码我都放在了github上,欢迎fork以及关注. 传送门:https://github.com/shirayner/WeiXin_QiYe_Demo/tree/master ...

  7. 微信开发:微信js_sdk 分享,前端部分(二)

    微信开发:微信js-sdk前端分享,代码如下: <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"> ...

  8. 微信开发-ACCESS TOKEN 过期失效解决方案

    微信开发-ACCESS TOKEN 过期失效解决方案 参考文章: (1)微信开发-ACCESS TOKEN 过期失效解决方案 (2)https://www.cnblogs.com/wicub/p/58 ...

  9. 用thinkphp进行微信开发的整体设计思考

    用thinkphp进行微信开发的整体设计思考 http://www.2cto.com/weixin/201504/388423.html 2015-04-09      0个评论       作者:明 ...

最新文章

  1. java content()_理解content(一)
  2. mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案
  3. MySQL查询的进阶操作--联合查询
  4. MySQL事务的四种隔离级别,mysql中的不可重复读和幻读的区别,Repeatable read可重复读隔离级别下怎么不存在幻读问题?
  5. boost::format模块一些真实的、简单的测试
  6. I/O数据有几种传送方式?各有什么特点?【最精炼】
  7. Linux驱动设计ioctl函数的cmd参数不能为2
  8. Linux学习笔记——gzip命令
  9. 无线SD-WAN提供商Cradlepoint完成C轮融资8900万美元
  10. 编译在arm版本的Valgrind-转
  11. springmvc框架使用拦截器实现301永久重定向,其实用过滤器应该是更好
  12. My97DatePickerBeta日期控件乱码问题解决方案
  13. 如何用ESP8266/ESP8285做一个WIFI中继(WiFi信号放大器)
  14. 许晓斌_Maven实战(四)——基于Maven的持续集成实践
  15. The project uses Gradle 4.1 which is incompatible with Java 11 or newer
  16. 【面试总结】网易2019秋招一站式面试总结(等offer中……)
  17. 实验四 201771010101 白玛次仁
  18. 曾仕强经典语录-《易经的奥秘》
  19. gzp解压命令 linux_Linux gzip命令:压缩文件或目录
  20. 基于UE4 的AirSim虚拟仿真

热门文章

  1. 如何获取ubuntu源码包里面的源码进行编译
  2. idea代码样式模板_阿里p3c(代码规范,eclipse插件、模版,idea插件)
  3. python控制手机自动刷新闻_Python控制android手机实现微信自动跳一跳
  4. 学籍管理系统 c++作业
  5. pthread和互斥量条件变量函数意义速查表
  6. linux网路编程之TCP状态转换及端口复用
  7. IO多路转接模型----(select的模型,select的优缺点,poll的模型,poll的优缺点)
  8. Educational Codeforces Round 114总结
  9. 类的成员函数可以访问属于该类的任意对象的私有变量
  10. CF Gym102059 H. Fractions