如何使用 C# Core 3.1 拦截 Bot Framework v4 中的消息以进行日志记录

How to intercept messages in Bot Framework v4 for logging, using C# Core 3.1

我们找到了解释如何在 bot 框架 v3 中拦截消息的文档:https://docs.microsoft.com/en-us/azure/bot-service/dotnet/bot-builder-dotnet-middleware?view=azure-bot-service-3.0

我们想要做到这一点,只在 bot 框架的 v4 中。

我们无法在此处找到有关拦截机器人框架 v4 消息的文档:https://docs.microsoft.com/en-us/azure/bot-service/?view=azure-bot-service-4.0

有没有办法拦截 bot framework v4 中的消息,以便我们记录它们?

我们已经在 OnMessageActivityAsync 方法中记录了用户消息。所以我们只需要记录从机器人发送给用户的消息。

提前致谢。

首先我们尝试创建我们自己的中间件,但我们无法让它工作。

经过更多研究,我们决定在 MyBot.OnTurnAsync 方法中使用 turnContext.OnSendActivities。像这样:

turnContext.OnSendActivities(async (sendContext, activities, nextSend) =>
{
  // Log activities here
  return await nextSend();
});

对于我们来说,这个解决方案是完美的,并且比创建自定义中间件更容易实现。还是谢谢了。