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

Is there a way to read all the messages which are already posted in the bot without knowing their respective Conversation IDs

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

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

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

所以如果你在AzureSQL数据库中保存数据,你可以参考Saving Bot Activities in Azure SQL Database, and here are some official examples

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

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