Node.js 如何阻止消息在bot builder框架中被识别
我的问题与BotBuilder框架的节点版本基本相同Node.js 如何阻止消息在bot builder框架中被识别,node.js,botframework,Node.js,Botframework,我的问题与BotBuilder框架的节点版本基本相同 当机器人被添加到一个有多个用户的频道时,它会对每一条消息做出反应,这不是它的目的。我打算通过截取消息来解决这个问题,如果消息中提到了bot,它将被允许正常流动,否则取消操作。但是,我找不到要覆盖的正确函数。有什么建议吗?您可以使用node SDK轻松拦截消息。我给你一个示例代码: server.post('/api/messages', connector.listen()); var bot = new builder.UniversalB
当机器人被添加到一个有多个用户的频道时,它会对每一条消息做出反应,这不是它的目的。我打算通过截取消息来解决这个问题,如果消息中提到了bot,它将被允许正常流动,否则取消操作。但是,我找不到要覆盖的正确函数。有什么建议吗?您可以使用node SDK轻松拦截消息。我给你一个示例代码:
server.post('/api/messages', connector.listen());
var bot = new builder.UniversalBot(connector);
bot.use({
botbuilder: function (session, next) {
myMiddleware.doSthWithIncomingMessage(session, next);
},
send: function (event, next) {
myMiddleware.doSthWithOutgoingMessage(event, next);
}
})
module.exports = {
doSthWithIncomingMessage: function (session, next) {
console.log(session.message.text);
next();
},
doSthWithOutgoingMessage: function (event, next) {
console.log(event.text);
next();
}
}
现在,每个入站消息(从用户到bot)都将触发
dostwhithincomingmessage
,每个出站消息(从bot到用户)都将触发dostwhithwithoutingmessage
。在本例中,机器人只需打印有关每条消息的一些信息,但您可以修改行为以过滤消息并检查提及的内容。谢谢@gabriel piffaretti。这就是我要找的。不过,对于我应该使用的确切逻辑,我有点挑剔。基本上,我可以使用next继续发送消息,但当前停止消息的方式是使用session.endDialog。这似乎有点奇怪,尤其是在还没有对话的情况下。还有其他建议吗?