JSON

微信API For Node.js

字号+ 作者:H5之家 来源:H5之家 2017-11-08 17:02 我要评论( )

微信API For Node.js

微信API For Node.js

时间:2017-10-31 11:16 作者:QQ地带 我要评论

介绍

weixin-api是对微信公众平台消息接口的Node.js实现。

 

NPM:https://npmjs.org/package/weixin-api

Github:https://github.com/JeremyWei/weixin_api

安装

$ npm install weixin-api

功能

消息监听

根据微信公众平台的API规范,对四种消息进行监听,通过传递callback来对消息进行处理,其中callback只有一个参数msg,不同消息其msg内容不同,各属性代表的含义请对照微信公众平台的API规范。

 

textMsg(function(msg) {})

说明:监听文本消息  

msg结构:  

{  

toUserName : '',

fromUserName : '',

createTime : '',

msgType : 'text',

content : '',

msgId : ''

}  

imageMsg(function(msg) {})

说明:监听图片消息  

msg结构:  

{  

toUserName : '',

fromUserName : '',

createTime : '',

msgType : 'image',

picUrl : '',

msgId : ''

}

locationMsg(function(msg) {})

说明:监听位置信息  

msg结构:  

{  

toUserName : '',

fromUserName : '',

createTime : '',

msgType : 'location',

locationX : '',

locationY : '',

scale : '',

label : '',

msgId : ''

}

urlMsg(function(msg) {})

说明:监听链接信息  

msg结构:  

{  

toUserName : "",

fromUserName : "",

createTime : "",

msgType : "link",

title : "",

description : ""

url : ""

msgId : ""

}

eventMsg(function(msg) {})

说明:监听事件信息  

msg结构:  

{  

toUserName : "",

fromUserName : "",

createTime : "",

msgType : "event",

event : "",

eventKey : ""

}

### 消息回复 消息的回复统一使用sendMsg(msg)方法,其中msg可以为以下内容:

 

回复文本消息

 

  var msg = {

      fromUserName : "",

      toUserName : "",

      msgType : "text",

      content : "(╯°□°)╯︵ ┻━┻",

      funcFlag : 0

  };

回复音乐消息

 

  var msg = {

      fromUserName : "",

      toUserName : "",

      msgType : "music",

      title : "向往",

      description : "李健《向往》",

      musicUrl : "",

      HQMusicUrl : "",

      funcFlag : 0

  };

回复图文消息

 

  var articles = [];

  articles[0] = {

      title : "PHP依赖管理工具Composer入门",

      description : "PHP依赖管理工具Composer入门",

      picUrl : "",

      url : ""

  };

 

  articles[1] = {

      title : "八月西湖",

      description : "八月西湖",

      picUrl : "",

      url : ""

  };

 

  articles[2] = {

      title : "「翻译」Redis协议",

      description : "「翻译」Redis协议",

      picUrl : "",

      url : ""

  };

 

  // 返回图文消息

  var msg = {

      fromUserName : "",

      toUserName : "",

      msgType : "news",

      articles : articles,

      funcFlag : 0

  }

示例

 

我们使用express来创建一个简单的微信应用

 

安装express

$ npm install express -g

创建应用

$ express myweixin

cd myweixin修改package.json,添加对weixin-api的依赖:

 

{

  "name": "application-name",

  "version": "0.0.1",

  "private": true,

  "scripts": {

    "start": "node app.js"

  },

  "dependencies": {

    "express": "3.1.1",

    "jade": "*",

    "xml2js" : "0.2.6",

    "weixin-api" : "*"

  }

}

然后执行npm install

 

app.js

var express = require('express'),

weixin = require('weixin-api'),

app = express();

 

// 解析器

app.use(express.bodyParser());

 

// 接入验证

app.get('http://www.oicqzone.com/', function(req, res) {

 

// 签名成功

if (weixin.checkSignature(req)) {

res.send(200, req.query.echostr);

} else {

res.send(200, 'fail');

}

});

 

// config

weixin.token = '你的token';

 

// 监听文本消息

weixin.textMsg(function(msg) {

console.log("textMsg received");

console.log(JSON.stringify(msg));

 

var resMsg = {};

 

switch (msg.content) {

case "文本" :

resMsg = {

fromUserName : msg.toUserName,

toUserName : msg.fromUserName,

msgType : "text",

content : "(╯°□°)╯︵ ┻━┻",

funcFlag : 0

};

break;

 

case "音乐" :

resMsg = {

fromUserName : msg.toUserName,

toUserName : msg.fromUserName,

msgType : "music",

title : "向往",

description : "李健《向往》",

musicUrl : "",

HQMusicUrl : "",

funcFlag : 0

};

break;

 

case "图文" :

 

var articles = [];

articles[0] = {

title : "PHP依赖管理工具Composer入门",

description : "PHP依赖管理工具Composer入门",

picUrl : "",

url : ""

};

 

articles[1] = {

title : "八月西湖",

description : "八月西湖",

picUrl : "",

url : ""

};

 

articles[2] = {

title : "「翻译」Redis协议",

description : "「翻译」Redis协议",

picUrl : "",

url : ""

};

 

// 返回图文消息

resMsg = {

fromUserName : msg.toUserName,

toUserName : msg.fromUserName,

msgType : "news",

articles : articles,

funcFlag : 0

}

}

 

weixin.sendMsg(resMsg);

});

 

// 监听图片消息

weixin.imageMsg(function(msg) {

//

console.log("imageMsg received");

console.log(JSON.stringify(msg));

});

 

// 监听位置消息

weixin.locationMsg(function(msg) {

//

console.log("locationMsg received");

console.log(JSON.stringify(msg));

});

 

// 监听链接消息

weixin.urlMsg(function(msg) {

//

console.log("urlMsg received");

console.log(JSON.stringify(msg));

});

 

// Start

app.post('http://www.oicqzone.com/', function(req, res) {

 

// loop

weixin.loop(req, res);

 

});

 

app.listen(3000);

启动

$ cd myweixin

$ node app.js

#结尾 这个package还有很多不完善的地方,欢迎fork,:)

 

(全文完)


标签: 微信

顶一下

(3)

100%

踩一下

(0)

0%

Google提供的广告

推荐图文

相关文章

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 用微信小程序实现语音识别的详细教程

    用微信小程序实现语音识别的详细教程

    2017-09-06 18:15

  • 微信小程序通过api接口将json数据展现到小程序示图片】

    微信小程序通过api接口将json数据展现到小程序示图片】

    2017-08-28 09:00

  • JSON入门级学习小结--JSON数据结构

    JSON入门级学习小结--JSON数据结构

    2017-08-02 18:06

  • 微信学院:微信及微信公众平台营销技巧和开发技术

    微信学院:微信及微信公众平台营销技巧和开发技术

    2017-08-02 10:00

网友点评
s