Skip to content

node-webot/co-wechat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

co-wechat NPM version Build Status Dependencies Status Coverage Status

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

升级注意事项

支持 Koa2

如果仍然使用 Koa1,请使用[email protected]

middleware 方法变更

middleware() 方法接受一个 async function 作为参数。

app.use(wechat(config).middleware(async (message) => {
  // TODO
}));

上下文与返回值变更

现在的上下文不再是原始的 请求上下文,而仅仅是 message 对象。

业务的返回值现在直接返回即可,无需关注上下文。比如:

async (message) => {
  return 'Hello world!';
}

取消 session 的支持

不再支持 session 的功能。如需使用 session 功能,建议使用 redis 自行处理逻辑,取 message.FromUserName 作为 key,取一个合适的 ttl 时间即可。

功能列表

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

Installation

$ npm install co-wechat

Use with koa2

const wechat = require('co-wechat');

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

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

回复消息

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

回复文本

async (message) => {
  return 'Hello world!';
}
// 或者
async (message) => {
  return {type: "text", content: 'Hello world!'};
}

回复图片

async (message) => {
  return {
    type: "image",
    content: {
      mediaId: 'mediaId'
    }
  };
}

回复语音

async (message) => {
  return {
    type: "voice",
    content: {
      mediaId: 'mediaId'
    }
  };
}

回复视频

async (message) => {
  return {
    type: "video",
    content: {
      mediaId: 'mediaId',
      thumbMediaId: 'thumbMediaId'
    }
  };
}

回复音乐

async (message) => {
  return {
    title: "来段音乐吧",
    description: "一无所有",
    musicUrl: "https://mp3.com/xx.mp3",
    hqMusicUrl: "https://mp3.com/xx.mp3"
  };
}

回复图文

async (message) => {
  return [
    {
      title: '你来我家接我吧',
      description: '这是女神与高富帅之间的对话',
      picurl: 'https://nodeapi.cloudfoundry.com/qrcode.jpg',
      url: 'https://nodeapi.cloudfoundry.com/'
    }
  ];
}

回复空串

async (message) => {
  return '';
}

转发到客服接口

async (message) => {
  return {
    type: "customerService",
    kfAccount: "test1@test" //可选
  };
}

Show cases

Node.js API自动回复

Node.js API自动回复机器人

欢迎关注。

代码:https://github.com/JacksonTian/api-doc-service

你可以在CloudFoundryappfogBAE等搭建自己的机器人。

详细API

原始API文档请参见:消息接口指南

交流群

QQ群:157964097,使用疑问,开发,贡献代码请加群。

捐赠

如果您觉得Wechat对您有帮助,欢迎请作者一杯咖啡

捐赠wechat

或者

License

The MIT license.

Contributors


 project  : co-wechat
 repo age : 2 years, 9 months
 active   : 14 days
 commits  : 41
 files    : 10
 authors  :
    30  Jackson Tian  73.2%
     6  ifeiteng      14.6%
     3  lixiaojun     7.3%
     1  Jealee3000    2.4%
     1  fancyoung     2.4%