wego

0.0.3 • Public • Published

微信API的node实现

Install

npm install wego

Getting Started

假设你使用的是express框架

下面的代码是coffee写的。没有复杂的语法,直接脑补 括号就可以了

#app.coffee 
 
express = require 'express'
app = express()
port = 8000
token = "your token" #你的微信token 
 
_WeGo = require 'wego' #引入wego 
 
#引入不同消息类型处理的处理函数 具体见下面的 accept.coffee 
acceptHandle = require '.accept'
 
wego = new _WeGo(tokenacceptHandle) #进行基本设置。配置消息的处理事件等。 
 
app.get('/'(req, res)->
  #进行消息验证 是否来自于微信 
  #如果来自于微信,则返回来自于微信的一个随机字符串 echostr, 
  #否则echostr为false 
  echostr = wego.veritySignature(req)
 
  if echostr then res.send(echostr) else res.send('error')
)
 
app.post('/'(req, res)->
  #获取post数据 交给wego处理既可以 
  wego.parse(reqres)
)
 
app.listen port
 
# accept.coffee 
_WeGo = require('wego')
wego = new _WeGo()
#一个object对象 
Accept =
  #处理微信的文本消息 
  parseText: (req, resp, data)->
    #用户发来的消息解析后,就在data参数里面。 当然,也绑定到了request的wego属性 
    #即这里通过data 或者 req.wego.xml 都能获取到用户的数据 
    console.log 'accept data:'data
    #返回消息的设定。这一部分可以写自己的业务逻辑。这里只是做个demo。返回的结果是"you say" + 用户发送过来的消息 
    serverName = data.ToUserName
    clientName = data.FromUserName
    data.ToUserName = clientName
    data.FromUserName = serverName
    data.Content = "you say: #{data.Content}"
 
    #讲消息发送出去。 
    #注意 data为微信消息xml数据格式 的json类型。 也就是把对应的标签换成相应的json属性即可。 
    #注意 标签是大写 属性就大写,保持一致。 
    wego.sendMsg(reqrespdata)
 
  #当来自于微信的xml数据无法解析时。会调用这个函数 
  parseError: (req, resp)->
    console.log req.weixin.error
    console.log req.weixin.data
    resp.send ''
 
  #如果有消息类型没有设置自定义函数处理,则默认使用parseDefault这个函数进行处理 
  parseDefault: (req, resp, data)->
    console.log "消息未处理"
    console.log data
    resp.send ''
 
module.exports = Accept

API

构造函数 Wego

Wego =  require('wego')
wego = new Wego(token, options)

token

微信的token。一般是开发者在微信公众平台自己设置的。

options

Object. 里面包含了一些 函数,用于对 不同消息类型进行处理

处理用户消息主要应该包括以下这几个字段函数:

  parseText, parseImage, parseVoice, parseVideo, parseLocation, parseLink

分别处理用户发来的文本消息,图片消息, 语音消息, 视频消息, 位置消息,和 超链接消息。 也就是说当wego在request中提取到用户消息时,根据不同的消息类型会调用以上的函数进行处理。 这些函数接收三个参数request, response, data。

options = {
  parseText: function(request, response, data){
 
  },
 
  parseImage: function(){...}
 
  ...
}

request 即 http request. 解析后的数据会绑定在wego属性上:

console.log(request.wego)

response 即 http response

data. 解析后的数据除了会绑定到request上外 也会作为第三个参数data传过来,方便获取。

解析用户消息函数 parse

app.post('/', function(req, resp){
  wego.parse(req, resp)
})

接受两个参数 http request 和 http resposne 调用完成后就会结构初始化构造函数时的options里面的相关事件处理了。

发送消息 sendMsg

接收三个参数 http request 和 http resposne 还有响应消息的json数据 data data为可选参数。 如果data存在则使用data中的数据。如果data不存在,则使用request.wego.xml中的数据

    #讲消息发送出去。
    #注意 data为微信消息xml数据格式 的json类型。 也就是把对应的标签换成相应的json属性即可。
    #注意 标签是大写 属性就大写,保持一致。
    wego.sendMsg(req, resp, data)

Package Sidebar

Install

npm i wego

Weekly Downloads

2

Version

0.0.3

License

MIT

Last publish

Collaborators

  • huyinghuan