在上一往篇文章《Nodejs微信开发》中,微信后台能够正常的接收到客户端的消息,并能够简单的回复一条消息至客户端。

但我的目录是将微信与Bot Framework进行关联,那么肯定就有一些情况是Bot Framework是有多条消息,或是会回复图片消息的,这个时候只回复一条消息就无法满足我现在的需求了

可以看到在以下代码中,我使用wechat进行微信消息的接收,使用wechat-api对用户进行多次的回复,我就可以解决wechat只能对消息回复一次的问题

简单来说,wechat只负责接收到消息的回复,从bot framework提取到的消息需要通过wechat-api来进行发送

var wechat = require('wechat');
var wechatAPI = require('wechat-api'); //wechat config
var config = {
token: 'weixin',
appid: 'wx1434eed5268660c4',
encodingAESKey: 'ZEtViedarf49EUOCDeu45pqhkZhKPFBjSHI2DynP4vq',
checkSignature: true // 可选,默认为true。由于微信公众平台接口调试工具在明文模式下不发送签名,所以如要使用该测试工具,请将其设置为false
}; //创建wechat-api
var api = new wechatAPI(config.appid, '30a5f51682755652e6e02879757a0fb1'); var menu = {
"button": [
{
"type": "click",
"name": "WeChat Bot",
"key": "V1001_TODAY_MUSIC"
},
{
"name": "BotFramework",
"sub_button": [
{
"type": "view",
"name": "botframework",
"url": "https://dev.botframework.com/"
},
{
"type": "click",
"name": "赞一下我们",
"key": "V1001_GOOD"
}, {
"name": "发送位置",
"type": "location_select",
"key": "rselfmenu_2_0"
},]
}]
};
//删除菜单
api.removeMenu(function (err, result) {
if (err) {
logger.log('error', err);
}
logger.log('info', 'remove menu success');
}); //创建菜单
api.createMenu(menu, function (err, result) {
if (err) {
logger.log('error', err);
}
logger.log('info', 'create menu success');
}); app.use(express.query());
app.use('/wechat', wechat(config, wechat.text(function (message, req, res, next) {
//------------------------------------------------------------------------
var message = req.weixin;
logger.log("info", message); res.reply('Message Send To Bot Completed , Wait Response.'); api.sendText(message.FromUserName, 'this message from wechat-api', function (err, result) {
if (err) {
logger.log('error', err);
}
logger.log('info', 'reply message success');
}); }).image(function (message, req, res, next) {
var message = req.weixin;
logger.log("info", message); res.reply('功能开发中');
}).voice(function (message, req, res, next) {
var message = req.weixin;
logger.log("info", message); res.reply('功能开发中');
}).video(function (message, req, res, next) {
var message = req.weixin;
logger.log("info", message); res.reply('功能开发中');
}).location(function (message, req, res, next) {
var message = req.weixin;
logger.log("info", message); res.reply('功能开发中');
}).link(function (message, req, res, next) {
var message = req.weixin;
logger.log("info", message); res.reply('功能开发中');
}).event(function (message, req, res, next) {
var message = req.weixin;
logger.log("info", message); res.reply('感谢你的关注,你也可以在nodejs npm中查看wechat和wechat-api'); }).device_text(function (message, req, res, next) {
var message = req.weixin;
logger.log("info", message); res.reply('功能开发中');
}).device_event(function (message, req, res, next) {
if (message.Event === 'subscribe' || message.Event === 'unsubscribe') {
var message = req.weixin;
logger.log("info", message); res.reply("功能开发中");
} else {
var message = req.weixin;
logger.log("info", message); res.reply('功能开发中');
}
})));

参考:https://www.npmjs.com/package/wechat-api

https://www.npmjs.com/package/wechat

http://mp.weixin.qq.com/wiki/16/52e198333f5c127ddd5c45e875191b14.html

Nodejs微信开发使用wechat-api回复多条消息的更多相关文章

  1. Nodejs微信开发

    因为使用了Bot Framework开发了一个小功能,它目前支持了Skype\Teams\Slack等,但在国内来讲,微信还是一个比较流行的软件,所以需要接上微信 原来开发Bot的时候使用的是.Net ...

  2. 【微信开发】常用 api

    [微信开发]api 一. 开发文档 二. 调试工具 三. api 1. 获取 token - https://api.weixin.qq.com/cgi-bin/token?grant_type=cl ...

  3. 微信.NET 微信开发 自己主动内容回复 ASP.NET C#代码

    微信开发中,首先遇到的问题就是处理怎样接收和响应用户消息 , 本文将向大家介绍一下方法和关键的代码. 本文使用的接口库是  :https://github.com/chendong152/Weixin ...

  4. nodejs微信开发获取token,ticket-1

    /* jshint -W079 */ /* jshint -W020 */ "use strict"; var _ = require("lodash"); v ...

  5. 解析nodejs微信开发-2获取ticket

    获取ticket是需要拼接url,url中需要获得的tocken 1.先判断有无tocken:若有则拼接url: 2.请求url: a.处理回调数据,注意时间戳和签名处理方式,此两项并未存到ticke ...

  6. java微信开发(wechat4j)——发送客服消息

    微信支持主动发送客服消息.如果你要实现此功能,需要使用CustomerMsg类. 获得access_token access_token请求之后有一个过期时间,微信平台建议你使用一个中控服务器来定时刷 ...

  7. java微信开发API解析(二)-获取消息和回复消息

    java微信开发API解析(二)-获取消息和回复消息 说明 * 本演示样例依据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/20 ...

  8. nodejs微信公众号快速开发|自定义关键字回复

    一点说明: nodejs 微信api 扩展,集成大部分功能. 案例 https://github.com/leiroc/node-wxeasy-example 上传example中文件到服务器 ,然后 ...

  9. 记微信开发(有道翻译api)

    记微信开发(有道翻译api) 记微信开发(有道翻译api) 效果: 有道翻译api申请: 地址:http://fanyi.youdao.com/openapi code: <?php/** * ...

随机推荐

  1. hibernate多表查询

    一对多进行查询(用懒加载的模式) 查找区域所对应的街道: Dao: public Qu selQu(String dno){ Session session=HibernateSessionFacto ...

  2. P1712 [NOI2016]区间

    题目描述 在数轴上有 NN 个闭区间 [l_1,r_1],[l_2,r_2],...,[l_n,r_n][l1​,r1​],[l2​,r2​],...,[ln​,rn​] .现在要从中选出 MM 个区 ...

  3. 【题解】SCOI2010幸运数字

    最近在学习容斥相关,于是就看到了这个题.一开始以为是补集转化,但是观察一下马上发现不可行,好像直接做会比较容易一些.一个数满足要求的充要条件即为是一个幸运数字的倍数,那么容斥可以轻松搞定,只要枚举是一 ...

  4. AtCoder Grand Contest 028 B - Removing Blocks 解题报告

    B - Removing Blocks Time limit : 2sec / Memory limit : 1024MB Score : 600 points ## Problem Statemen ...

  5. nowcoder 提高组模拟赛 选择题 解题报告

    选择题 链接: https://www.nowcoder.com/acm/contest/178/B 来源:牛客网 题目描述 有一道选择题,有 \(a,b,c,d\) 四个选项. 现在有 \(n\) ...

  6. git查看和操作commit命令

    git reflog 显示所有branch的commit,包括commit和reset,以及已删除的commit.而git log只显示当前branch的commit,不包括已删除的commit gi ...

  7. [Noip2004]虫食算 dfs

    搜索问题的关键:优秀的搜索策略以及行之有效的减枝 对于这道题我们阶乘搜肯定不行所以我们按位搜,我们对每一位的三个数进行赋值,然后判解. 对于此一类的搜索乘上一个几十的常数来减枝往往要比直接搜要快得多, ...

  8. JS格式化时间(支持小程序,兼容IOS)

    })-(\d{})-(\d{})T(\d{}):(\d{}):(\d{})/ /** * @function format time * @param val, format * @return {s ...

  9. composer应用

    ubentu安装 进入自己的项目根目录cd/path/to/my/project 下载composer curl -s http://getcomposer.org/installer 把这个文件移到 ...

  10. API网关Kong部署和使用文档

    KONG安装使用说明 系统版本:ubuntu14 1.下载安装包 $ wget https://github.com/Mashape/kong/releases/download/0.8.3/kong ...