如何捕捉对话结束事件?

时间:2018-05-02 08:36:54

标签: node.js botframework

使用Microsoft BotBuilder,我希望在用户关闭或终止与我的机器人的对话时捕获事件。这是我的机器人的代码:

const builder = require('botbuilder');
const connector = new builder.ChatConnector({
    appId: process.env.MICROSOFT_APP_ID,
    appPassword: process.env.MICROSOFT_APP_PASSWORD
});

const inMemoryStorage = new builder.MemoryBotStorage();
const bot = new builder.UniversalBot(connector).set('storage', inMemoryStorage);
initialize(bot);

function initialize(bot) {
        bot.on('conversationUpdate', function(data) {

        });
    }

从上面的代码块中,我想添加一个处理结束对话的事件。这是我的示例代码:

function initialize(bot) {
        bot.on('conversationEnd', function(data) {
            var user = data.user,
                address = data.address,
                conversationId = data.address.conversation.id;
        });
    }

那么,上面的代码是否有 conversationEnd 的事件?我想知道botBuilder是否可以处理结束对话?

1 个答案:

答案 0 :(得分:1)

没有像converstaionEnd这样的事件。以这种方式思考它。如果您正在与某人聊天,您可以选择不再回复。对于人类用户来说,似乎谈话已经结束,但机器人将不会有任何线索。它会继续等待。除非你向机器人提供智能,否则在考虑对话结束之前等待一段时间。

那说你可以处理其他一些事情:

  • 您可以处理conversationUpdate事件。当任何成员加入/离开转换时会触发此事件。 Example

  • 您可以使用某个关键字(例如再见,退出等)作为会话结束关键字,这可以触发endConversationAction Example