Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用中间件的聊天日志_C#_Asp.net Core_Botframework_Chatbot_Azure Language Understanding - Fatal编程技术网

C# 使用中间件的聊天日志

C# 使用中间件的聊天日志,c#,asp.net-core,botframework,chatbot,azure-language-understanding,C#,Asp.net Core,Botframework,Chatbot,Azure Language Understanding,我已经加入了中间件来记录firebase db中的聊天记录。现在,我可以在用户向bot发送一些文本后调用中间件一次,然后在bot向用户发送数据后调用中间件。在以前版本的bot framework v3中,活动有效负载将根据需要更改message.text和from和to 用户bot/bot用户。但是现在在botframeworkv4中,当bot向用户发送消息/响应时,我找不到有效负载中任何地方发送的数据。 是否有办法保存bot用户的数据。请给我一些建议。 < P>如果你想从一个中间件中向外发送的

我已经加入了中间件来记录firebase db中的聊天记录。现在,我可以在用户向bot发送一些文本后调用中间件一次,然后在bot向用户发送数据后调用中间件。在以前版本的bot framework v3中,活动有效负载将根据需要更改message.text和from和to 用户bot/bot用户。但是现在在botframeworkv4中,当bot向用户发送消息/响应时,我找不到有效负载中任何地方发送的数据。
是否有办法保存bot用户的数据。请给我一些建议。

< P>如果你想从一个中间件中向外发送的活动中间,你想把它绑定到<代码> iTurnValue::OnsEngestys如下:

public class MyActivityLoggingMiddleware : IMiddleware
{
    public async Task OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken = default(CancellationToken))
    {
        // log incoming activity from turnContext.Activity here

        // Hook the turn context's OnSendActivities
        turnContext.OnSendActivities(HandleSendActivities);

        await next(cancellationToken);
    }

    private async Task<ResourceResponse[]> HandleSendActivities(ITurnContext turnContext, List<Activity> activities, Func<Task<ResourceResponse[]>> next)
    {
        // log activities being sent here

        return await next();
    }
}
公共类MyActivityLogging中间件:IMIDware
{
公共异步任务OnTurnAsync(ITurnContext turnContext,NextDelegate next,CancellationToken CancellationToken=default(CancellationToken))
{
//在此处记录turnContext.activity的传入活动
//钩住回合上下文的OnSendActivities
turnContext.OnSendActivities(HandleSendActivities);
等待下一步(取消令牌);
}
专用异步任务HandleSendActivities(ITurnContext turnContext、列表活动、Func next)
{
//正在发送到此处的日志活动
返回等待下一步();
}
}

@DevaNarayanan没问题!作为将来帮助其他人的答案,向上投票或打分如何?我已经这么做了,但我的声誉还不到15,这就是为什么我评论道:笑: