登录
注册
node.js 学习社区
Node.js 微信公众平台 API

郗小敬

2014-12-16 22:30

最近研究微信公众平台想做个微信机器人玩玩。。虽然有前辈们写了几个关于 Node.js 微信公众平台 api 的包了,比如 wechatweixin_api ,使用的过程中遇到一些问题。。。于是萌生了自己写一个的想法。。。于是把《Node.js 入门经典》翻出来,又参考了 weixin_api 的源码写了一个,也算是认识 Node.js 以来发布的第一个 Node 包。

Node.js 微信公众平台 API

安装 

npm install node-wechat

使用示例 1

var http = require('http'),
    wechat = require('node-wechat');

wechat.token = 'your_token';

http.createServer(function (req, res) {
  //检验 token
  wechat.checkSignature(req, res);
  //预处理
  wechat.handler(req, res);

  //监听文本信息
  wechat.text(function (data) {
    //console.log(data.ToUserName);
    //console.log(data.FromUserName);
    //console.log(data.CreateTime);
    //console.log(data.MsgType);
    //...
    var msg = {
      FromUserName : data.ToUserName,
      ToUserName : data.FromUserName,
      //MsgType : "text",
      Content : "这是文本回复",
      //FuncFlag : 0
    }
    //回复信息
    wechat.send(msg);
  });

  //监听图片信息
  //wechat.image(function (data) { ... });

  //监听地址信息
  //wechat.location(function (data) { ... });

  //监听链接信息
  //wechat.link(function (data) { ... });

  //监听事件信息
  //wechat.event(function (data) { ... });

  //监听语音信息
  //wechat.voice(function (data) { ... });

  //监听视频信息
  //wechat.video(function (data) { ... });

  //监听所有信息
  //wechat.all(function (data) { ... });
}).listen(80);

详见 example.js

使用示例 2

var http = require('http'),
    wechat = require('node-wechat');

wechat.token = 'your_token';

http.createServer(function (req, res) {
  //检验 token
  wechat.checkSignature(req, res);
  //预处理
  wechat.handler(req, res);

  //链式监听
  wechat.text(function (data) {
    // TODO
  }).image(function (data) {
    // TODO
  }).location(function (data) {
    // TODO
  }).link(function (data) {
    // TODO
  }).event(function (data) {
    // TODO
  }).voice(function (data) {
    // TODO
  }).video(function (data) {
    // TODO
  }).all(function (data) {
    var msg = {
      FromUserName : data.ToUserName,
      ToUserName : data.FromUserName,
      //MsgType : "news",
      Articles : [...]
    }
    wechat.send(msg);
  });

}).listen(80);

详见 example2.js

注意:不管是示例1还是示例2,只要触发 textimagelocationlinkevent 中的任意一个监听器,即使触发 all 监听器也不会返回任何东西,因为之前已经使用 res.end() 了。

github 地址:https://github.com/nswbmw/node-wechat

原文引自:http://cnodejs.org/topic/51f38326f4963ade0e449ef3

回复 · 0

发表回复

你可以在回复中 @ 其他人