node package manager
Stop wasting time. Easily manage code sharing in your team. Create a free org »

koa2-weixin

Koa2-weixin NPM version Build Status

微信公众平台消息接口服务中间件与API SDK

功能列表

  • 自动回复(文本、图片、语音、视频、音乐、图文)

Installation

$ npm install koa2-weixin

Use with koa

const wechat = require('koa2-weixin')
 
app.use(wechat('some token'))
app.use(async (ctx, next) => {
  // 微信输入信息都在ctx.weixin上 
  const message = ctx.weixin
  if (message.FromUserName === 'diaosi') {
    // 回复屌丝(普通回复) 
    ctx.body = 'hehe'
  } else if (message.FromUserName === 'text') {
    //你也可以这样回复text类型的信息 
    ctx.body = {
      content: 'text object',
      type: 'text',
    }
  } else if (message.FromUserName === 'hehe') {
    // 回复一段音乐 
    ctx.body = {
      type: 'music',
      content: {
        title: '来段音乐吧',
        description: '一无所有',
        musicUrl: 'http://mp3.com/xx.mp3',
        hqMusicUrl: 'http://mp3.com/xx.mp3',
      }
    }
  } else if (message.FromUserName === 'kf') {
    // 转发到客服接口 
    ctx.body = {
      type: 'customerService',
      kfAccount: 'test1@test',
    }
  } else {
    // 回复高富帅(图文回复) 
    ctx.body = [
      {
        title: '你来我家接我吧',
        description: '这是女神与高富帅之间的对话',
        picurl: 'http://nodeapi.cloudfoundry.com/qrcode.jpg',
        url: 'http://nodeapi.cloudfoundry.com/',
      }
    ]
  }
})

备注:token在微信平台的开发者中心申请

回复消息

当用户发送消息到微信公众账号,自动回复一条消息。这条消息可以是文本、图片、语音、视频、音乐、图文。详见:官方文档

回复文本

ctx.body = 'Hello world!'
// 或者 
ctx.body = {type: 'text', content: 'Hello world!'}

回复图片

ctx.body = {
  type: 'image',
  content: {
    mediaId: 'mediaId',
  },
}

回复语音

ctx.body = {
  type: 'voice',
  content: {
    mediaId: 'mediaId',
  },
}

回复视频

ctx.body = {
  type: 'video',
  content: {
    mediaId: 'mediaId',
    thumbMediaId: 'thumbMediaId',
  },
}

回复音乐

ctx.body = {
  type: 'music',
  content: {
    title: '来段音乐吧',
    description: '一无所有',
    musicUrl: 'http://mp3.com/xx.mp3',
    hqMusicUrl: 'http://mp3.com/xx.mp3',
  },
}

回复图文

ctx.body = {
  type: 'news',
  content: [
    {
      title: '你来我家接我吧',
      description: '这是女神与高富帅之间的对话',
      picurl: 'http://nodeapi.cloudfoundry.com/qrcode.jpg',
      url: 'http://nodeapi.cloudfoundry.com/',
    }
  ],
}

回复空串

ctx.body = ''

转发到客服接口

ctx.body = {
  type: 'customerService',
  kfAccount: 'test1@test', //可选 
}

License

The MIT license.