有没有办法在不知道各自的对话ID的情况下阅读已经在机器人中发布的所有消息

时间:2018-02-19 14:27:24

标签: botframework direct-line-botframework

我正在使用directline V3来测试MS Teams中的机器人。 这是一个在MS团队中显示一些消息的机器人。  有没有办法在不知道各自的对话ID的情况下阅读已经在机器人中发布的所有消息。如何阅读附件截图中bot显示的所有对话。

1 个答案:

答案 0 :(得分:1)

在bot方面,如果我们想保存并检索所有对话历史记录,在C#中我们可以实现IActivityLogger接口,并在Task LogAsync(IActivity activity)中记录数据,例如:

public class ActivityLogger : IActivityLogger
{
    public Task LogAsync(IActivity activity)
    {
        IMessageActivity msg = activity.AsMessageActivity();
        //log here
        return null;
    }
}

因此,如果您在Azure SQL数据库中保存数据,可以参考Saving Bot Activities in Azure SQL Database,这里有一些official examples

然后在node.js中,您可以使用中间件拦截和记录消息:

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