为了账号安全,请及时绑定邮箱和手机立即绑定

使用中间件的聊天记录

使用中间件的聊天记录

C#
暮色呼如 2022-07-10 16:06:32
我已经包含了中间件来在 firebase db 中记录聊天。现在我可以在用户向机器人发送一些文本之后调用中间件一次,然后在机器人向用户发送数据之后。在先前版本的bot 框架 v3中,活动负载将更改message.text 和 from 和 to为 user-bot/bot-user。但是现在在机器人框架 v4中,当机器人向用户发送消息/响应时,我无法在有效负载的任何地方找到发送的数据。有没有办法保存来自机器人用户的数据。请建议我任何想法。
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

如果您想参与从机器人从一个中间件向外发送的活动的中间,您需要ITurnContext::OnSendActivities像这样挂钩:


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();

    }

}


查看完整回答
反对 回复 2022-07-10
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信