/node-weixin-message

微信消息处理库

Primary LanguageJavaScriptOtherNOASSERTION

node-weixin-message NPM version Build Status Dependency Status Coverage percentage

Weixin message handling

微信消息处理

反馈与帮助

nodejs微信开发交流QQ群: 39287176

node-weixin项目

node-weixin项目是一个旨在帮助微信开发与使用的全面的技术支持平台项目。

目前最主要集成项目是

  1. node-weixin-express 它是基于node-weixin-api与node web服务器而实现的服务器实现参考实现。

  2. node-weixin-api 它是基于node-weixin-*所实现的API所组合而成的接口。

它们都是由下列子项目提供的功能组合而成:

  1. node-weixin-config 用于微信配置信息的校验

  2. node-weixin-auth 用于与微信服务器握手检验

  3. node-weixin-util 一些常用的微信请求,加密,解密,检验的功能与处理

  4. node-weixin-request 微信的各类服务的HTTP请求的抽象集合

  5. node-weixin-oauth 微信OAuth相关的操作

  6. node-weixin-pay 微信支付的服务器接口

  7. node-weixin-jssdk 微信JSSDK相关的服务器接口

  8. node-weixin-menu 微信菜单相关的操作与命令

  9. node-weixin-user 微信用户API

  10. node-weixin-media 微信多媒体API

  11. node-weixin-link 微信推广(二维码,URL)API

  12. node-weixin-message 微信消息处理API

Install

$ npm install --save node-weixin-message

Usage

var nodeWeixinMessage = require('node-weixin-message');

处理进入消息

var messages = nodeWeixinMessage.messages;


//处理接收消息

//需要通过parse分析消息,然后再通知相应的处理方法,这个代码需要放在ack服务器的返回处理
//messages.parse(json);

//接收文本
messages.on.text(function(message) {
  //message.FromUserName
  //message.ToUserName
  //message.CreateTime
  //message.MsgType
  //message.Content
  //message.MsgId
});

//接收图片
messages.on.image(function(message) {
 //message.FromUserName
 //message.ToUserName
 //message.CreateTime
 //message.MsgType
 //message.PicUrl
 //message.MediaId
 //message.MsgId
});

//接收语音
messages.on.voice(function(message) {
  //message.FromUserName
  //message.ToUserName
  //message.CreateTime
  //message.MsgType
  //message.Format
  //message.Recognition
  //message.MediaId
  //message.MsgId
});

//接收视频
messages.on.video(function(message) {
  //message.FromUserName
  //message.ToUserName
  //message.CreateTime
  //message.MsgType
  //message.ThumbMediaId
  //message.MediaId
  //message.MsgId
});

//接收短视频
messages.on.shortvideo(function(message) {
  //message.FromUserName
  //message.ToUserName
  //message.CreateTime
  //message.MsgType
  //message.ThumbMediaId
  //message.MediaId
  //message.MsgId
});

//接收位置信息
messages.on.location(function(message) {
  //message.FromUserName
  //message.ToUserName
  //message.CreateTime
  //message.MsgType
  //message.Location_X
  //message.Location_Y
  //message.Scale
  //message.Label
  //message.MsgId
});

//接收链接
messages.on.link(function(message) {
  //message.FromUserName
  //message.ToUserName
  //message.CreateTime
  //message.MsgType
  //message.Title
  //message.Description
  //message.Url
  //message.MsgId
});

处理进入事件

//以下消息也都是基于messages.parse(json);

//处理用户订阅
messages.event.on.subscribe(function (message) {
});

//处理用户退订
messages.event.on.unsubscribe(function (message) {
});

//处理扫描带参数二维码事件
messages.event.on.scan(function (message) {
});

//处理上报地理位置事件  
messages.event.on.location(function (message) {
});


//处理点击菜单拉取消息时的事件
messages.event.on.click(function (message) {
});

//处理点击菜单跳转链接时的事件
messages.event.on.view(function (message) {
});

//处理模块消息发送事件
messages.event.on.templatesendjobfinish(function (message) {
});

回复消息

var reply = nodeWeixinMessage.reply;
//res是HTTP的res

//回复文本
var text = reply.text('FromUserName', 'ToUserName', 'content');
res.send(text)

//回复图片
var image = reply.image('FromUserName', 'ToUserName', 'mediaId');
res.send(image)

//回复视频
var video = reply.video('FromUserName', 'ToUserName', 'mediaId', 'title', 'desc');
res.send(video);

//回复音乐
var music = reply.music('FromUserName', 'ToUserName', 'mediaId', 'title',
'desc', 'http://www.musicurl.com', 'http://www.hightQualitymusicurl.com');
res.send(music);


//回复图文
var news = reply.news('FromUserName', 'ToUserName', [{
    title: 'title1',
    description: 'description1',
    picUrl: 'picUrl1',
    url: 'url1'
  },
  {
    title: 'title2',
    description: 'description2',
    picUrl: 'picUrl2',
    url: 'url2'
  },
  {
    title: 'title3',
    description: 'description3',
    picUrl: 'picUrl3',
    url: 'url3'
  }]);
res.send(news);

发送模板消息

var template = nodeWeixinMessage.template;

//设置行业属性
template.setIndustry(app, '1', '2', function (error, data) {
  //data.errcode
  //data.errmsg
});

//获取模板
template.get(app, 'TM00015', function (error, data) {
  //data.errcode
  //data.errmsg
  //data.template_id;
});

//发送模板
template.send(app, process.env.APP_OPENID, templateId, 'http://www.qq.com', {
  "first": {
    "value":"恭喜你购买成功!",
    "color":"#173177"
  },
  "orderMoneySum":{
    "value":"102.82",
    "color":"#173177"
  },
  "orderProductName": {
    "value":"田一块",
    "color":"# 383232"
  },
  "remark":{
    "value":"欢迎再次购买!",
    "color":"#173177"
  }
}, function (error, data) {
  //data.errcode
  //data.errmsg
  //data.msgid
});

客服API消息回复

var service = nodeWeixinMessage.service;


//回复文本消息
service.api.text(app, process.env.APP_OPENID, 'hello', function (error, data) {
  //data.errcode
  //data.errmsg
});

//回复图片
service.api.image(app, process.env.APP_OPENID, mediaId, function (error, data) {
  //data.errcode
  //data.errmsg
});

//回复语音
service.api.voice(app, process.env.APP_OPENID, mediaId, function (error, data) {
  //data.errcode
  //data.errmsg
});

//回复视频
service.api.video(app, process.env.APP_OPENID, 'title', 'desc',
 mediaId, thumbMediaId, function (error, data) {
  //data.errcode
  //data.errmsg
});

//回复音乐
service.api.music(app, process.env.APP_OPENID,
  'http://www.stephaniequinn.com/Music/Commercial%20DEMO%20-%2015.mp3',
  'http://www.stephaniequinn.com/Music/Commercial%20DEMO%20-%2015.mp3',  //高品质音乐URL
  thumbMediaId,
  'title',
  'desc', function (error, data) {
    //data.errcode
    //data.errmsg
  });

//回复图文
var articles = [
  {
    "title": "Happy Day",
    "description": "Is Really A Happy Day",
    "url": "http://www.qq.com",
    "picurl": "https://mp.weixin.qq.com/cgi-bin/singlesendpage?t=message/send&action=index&tofakeid=1866487131&token=1650197120&lang=zh_CN"
  },
  {
    "title": "Happy Day",
    "description": "Is Really A Happy Day",
    "url": "http://www.qq.com",
    "picurl": "https://mp.weixin.qq.com/cgi-bin/singlesendpage?t=message/send&action=index&tofakeid=1866487131&token=1650197120&lang=zh_CN"
  }
];

service.api.news(app, process.env.APP_OPENID, articles, function (error, data) {
  //data.errcode
  //data.errmsg
});

客服接待列表信息

service.account.list(app, function (error, data) {
  //data
});

客服在线接待信息

service.account.online(app, function (error, data) {
  //data.kf_online_list
});

模板消息管理

service.manage.industry(app, 1, 2, function (error, data ) {
  //data.errcode
  //data.errmsg
});

service.manage.template(app, 'TM00015', function (error, data ) {
  //data.errcode
  //data.errmsg
});

License

Apache-2.0 © calidion