【问题标题】:how to intercept messages in botbuilder sdk v4 using middleware?如何使用中间件拦截 botbuilder sdk v4 中的消息?
【发布时间】:2019-06-11 01:12:39
【问题描述】:

我有一个在 botbuilder V3 上运行的 Bot,我在其中使用解释为 here 的中间件来拦截消息。

bot.use({
    botbuilder: function (session, next) {
        myMiddleware.logIncomingMessage(session, next);
    },
    send: function (event, next) {
        myMiddleware.logOutgoingMessage(event, next);
    }
})

我们计划在 sdk v4 上迁移,因此在 sdk v4 中寻找类似的功能。有吗?

我没有找到关于这个page.的例子

【问题讨论】:

    标签: node.js botframework bots microsoft-cognitive


    【解决方案1】:

    BotAdapter 基类公开了use 方法来注册中间件。因此,在您的启动逻辑中,您将创建BotAdapter 的特定实现,通常是BotFrameworkAdapter,然后将中间件添加到其中。像这样:

    const botAdapter = new BotFrameworkAdapter( { /* credential stuff here*/ });
    
    // Simple handler based
    botAdapter.use(async (turnContext, next) => {
        // pre logic
    
        await next();
    
        // post logic
    });
    
    // Or class based
    botAdapter.use(new MyMiddleware());
    

    【讨论】:

    • 谢谢。还有一个问题,我们如何区分从 Bot 到用户以及从用户到 bot 的活动。例如:- 在 v3 中,我们有 2 个事件处理程序 botbuilder 和发送。
    • 当然,很乐意为您提供帮助!你介意提出一个关于差异化的新问题吗?在 cmets 中回答后续问题被认为是一种不好的形式,因为它使人们在搜索答案时更难找到。当你这样做时,我会加入并给你一个答案 AQAP。 ?
    • @vijay v4 中的 turnContext 是否类似于 v3 中的“会话”?
    猜你喜欢
    • 2013-04-05
    • 1970-01-01
    • 2015-01-18
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2022-01-19
    相关资源
    最近更新 更多