设为首页 收藏本站
查看: 969|回复: 0

[经验分享] 用Node.js开发微信公众号

[复制链接]

尚未签到

发表于 2017-2-25 08:56:44 | 显示全部楼层 |阅读模式
=͟͟͞͞( ·̀д·́)

用Node.js开发一个微信公众号
  闲来无事,于是弄了个微信的公众号来玩玩~
  
下文来介绍如何弄一个微信公众号吧。

微信公众号工作原理
  先来简单的介绍下,大概的工作流程
  大概如下图所示:
  
DSC0000.png
  当用户给公众号发送消息时,微信服务器通过我们绑定的服务器URL,将消息以及验证信息进行打包,发送到该URL,类似于POST请求。服务器接收到消息后,解析消息,然后通过HttpServletResponse给微信服务器发送回应(其中包括appid,appsecret等验证信息),微信服务器再把从服务器接收到的信息转发给用户。

选择服务器
  现在有不少支持Node.js的服务器,新浪云,阿里云,百度云等。我选了百度云,根据预算就好 ~(>_<。)\

进入开发 (·̀ロ·́)و✧ ~~
  用Node.js开发一个公众号其实是非常简单的,因为有wechat这个包可以供我们使用。
  
这个包已经帮我们完成了大部分的工作,主要是接收解析微信服务器发过来的信息,然后定义了返回的格式。
  
而且文档也写的相当清楚,真是帮我们偷了一个大懒 23333

安装
  如果还没安装npm与node,请先安装安装教程
  
在项目目录下
  

npm install wechat --save  

  
//安装其他要用到的
  
npm install express body-parser --save
  

  下面来写一个hello world的demo

wechat.js(项目目录)
  

var wechat = require('wechat');  
var verifyInfo = {  //验证信息
  token: '',  // your wechat token
  appid: ''  // your wechat appid
  
};
  

  
//处理文本消息
  
var handler = wechat(verifyInfo, wechat.text(wechatText));  
  

  
module.exports = handler;
  

  
function wechatText(message, req, res, next) {
  var input = (message.Content || '').trim();  
  

  if (/你好/.test(input)) {
  res.reply('Hello world (·̀ロ·́)و✧ ~~');
  } else {
  res.reply('(¬_¬)ノ 听不懂啦');
  }
  
}
  

app.js(项目目录下)
  

var express         = require(&quot;express&quot;);  
var bodyParser      = require(&quot;body-parser&quot;);
  

  

  
var app = express();
  

  
//config
  
app.set('port', 2333);
  
app.use(bodyParser.json());
  
app.use(bodyParser.urlencoded({extended: true}));
  

  
// route
  
app.use('/weixin', require('./wechat'));
  

  

  
// start up server
  
app.listen(app.get('port'), function () {
  console.log('Server listening on:', app.get('port'));
  
});
  

下一步
  先注册一个微信公众号,注册时有订阅号,服务号,企业号三种类型的公众号可选。我选的是订阅号。
  一般情况下,个人选订阅号就可以了。订阅号的限制在于,现在个人账号无法进行微信验证,一些接口是没法使用的,比如自定义菜单的接口 (T▽T)
  本来打算把查询做成菜单形式的,这样查询就方便很多,可惜没这个权限,只好做成一问一答的形式。再次默哀。。。。
  
不过我们也可申请一个微信公众号开发者测试账号,里面有所有接口的权限
  注册好后,把appid,appsecret填到wechat.js上,再把代码部署到服务器上
  接下来
  
1.进入公众号开发平台,在这个菜单栏
  
DSC0001.png
  2.在URL那一栏写上你的服务器地址
  
DSC0002.png
  3.这样就大工搞成了

Demo
  用微信扫一扫就可看到
  
DSC0003.jpg

源码
  我是分开成两个项目来做的:


  • atpdata (这个不用理)
  • wechat (前端是用Vue来写的)
  代码写的很渣。。。欢迎指正 ~(>_<。)\

参考链接:


  • npm-wechat
  • wechat-dev-doc  



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346838-1-1.html 上篇帖子: JavaScript代码模块化的正规方法 下篇帖子: npm常用命令解析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表