node.js - 如何阻止消息在机器人构建器框架中被识别

标签 node.js botframework

我的问题本质上与 this github issue 相同,然后是 BotBuilder 框架的 Node 版本。

当机器人被添加到具有多个用户的 channel 时,它会对每条消息使用react,但这不是它的目的。我打算通过拦截消息来解决此问题,如果其中包含机器人的提及,则将允许其正常流动,否则取消操作。但是我找不到合适的函数来覆盖。有什么建议吗?

最佳答案

您可以使用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();
    }
}

现在,每条入站消息(从用户到机器人)都将触发 doSthWithIncomingMessage,每条出站消息(从机器人到用户)都将触发 doSthWithOutgoingMessage。在此示例中,机器人仅打印有关每条消息的一些信息,但您可以修改行为以过滤消息并检查提及情况。

关于node.js - 如何阻止消息在机器人构建器框架中被识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44111126/

相关文章:

node.js - 与接受 INR 的 nodejs 一起使用的支付网关

node.js - 无法使用 multer 上传图像

c# - 获取卡中的 token 以从个人资料中检索用户图像

botframework - 如何加载可变的 Microsoft Teams 机器人图标?

azure - 在 botframework-sdk 中,我的机器人突然开始出现此错误 Error : Get Token request returned http error: 401

node.js - 在运行服务器上无法获取/出现错误

javascript - 如何模糊除列表项之外的整个主体?

c# - 我们可以将 Microsoft Azure Bot 连接到 Azure SQL 数据库并从数据库读取数据并将其用作机器人的回复吗?

java - 无法通过 Skype 机器人创建新对话

javascript - 生成: true not working in loopback 4