如何使用 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();
});
对于我们来说,这个解决方案是完美的,并且比创建自定义中间件更容易实现。还是谢谢了。
我们找到了解释如何在 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();
});
对于我们来说,这个解决方案是完美的,并且比创建自定义中间件更容易实现。还是谢谢了。