在上一往篇文章《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. element-ui的el-tabel组件怎么使用type=“expand”实现表格嵌套并且在子表格没有数据的时候隐藏展开按钮

    效果如下: 试过很多种办法,思路都在怎么控制<el-table-column type="expand">里面的type上,比如使用v-show等等,但是发现,要不就是 ...

  2. JavaScript内置对象常用

    Math 提供了数学中常用的属性和方法,使用时直接用Math.属性/方法,而不需要new一个Math对象 Date 使用Date对象来对日期和时间进行操作.使用时,必须用new创建一个实例 windo ...

  3. Python数据分析(一)pandas数据切片

    1.获取行或列数据 loc——通过行标签索引行数据 iloc——通过行号索引行数据 ix——通过行标签或者行号索引行数据(基于loc和iloc 的混合) 同理,索引列数据也是如此! import pa ...

  4. [转载] Win7下MATLAB 7.0下载地址和详细安装

    移步http://blog.csdn.net/feecooling/article/details/7525140 MATLAB中文手册命令汇总http://wenku.baidu.com/view/ ...

  5. [bzoj3004] [SDOi2012]吊灯

    Description Alice家里有一盏很大的吊灯.所谓吊灯,就是由很多个灯泡组成.只有一个灯泡是挂在天花板上的,剩下的灯泡都是挂在其他的灯泡上的.也就是说,整个吊灯实际上类似于[b]一棵树[/b ...

  6. ARC074 E RGB Sequence DP

    ---题面--- 题解: 首先,有一个不太直观的状态,f[i][j][k][l]表示DP到i位,三种颜色最后出现的位置分别是j, k, l的方案数.因为知道了三种颜色最后出现的位置,因此也可以得知以当 ...

  7. maven与gradle的对比

    Java世界中主要有三大构建工具:Ant.Maven和Gradle.经过几年的发展,Ant几乎销声匿迹.Maven也日薄西山,而Gradle的发展则如日中天.笔者有幸见证了Maven的没落和Gradl ...

  8. namesilo注册域名用来做域名邮箱

    重要的话说三遍: (一定不要再国内注册域名,不要买国内的空间) (一定不要再国内注册域名,不要买国内的空间) (一定不要再国内注册域名,不要买国内的空间) 使用的是腾讯企业邮箱,有一个缺点:不支持自定 ...

  9. git上传本地项目

    1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...

  10. gitlab之:gitlab 403 forbidden 并发引起ip被封

    步骤: * 打开/etc/gitlab/gitlab.rb文件. * 查找gitlab_rails['rack_attack_git_basic_auth']关键词. * 取消注释 * 修改ip_wh ...