如何在机器人框架中调试通道数据



我有一个机器人,我最近开始从我的直线客户端传递频道数据(用户信息),但是现在这使得依赖于此频道的代码非常困难数据。

有没有办法让bot框架模拟器发送通道数据,还是在这种情况下有更好的调试方法?

模拟器没有一种简单的内置方式来发送自定义channelData。但是,有几种不同的方法可以做到这一点:

本地调试

正如@ericdahlvang所述(我忘记了),您可以在本地调试任何频道

webchat

模拟器是在网络聊天中构建的,因此输出将完全相同。但是,您错过了模拟器的一些调试功能。

  1. 克隆一个网络聊天样本
  2. http://localhost:3978/api/messages和您的channelData编辑index.html
  3. 运行npx serve
  4. 导航到http://localhost:5000

在OnTurnAsync()

中修改消息

这仅用于测试/嘲笑目的,您需要确保这不会进行生产,但是您可以修改OnTurnAsync()中的传入消息并手动添加channelData

类似:

public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
    var activity = turnContext.Activity;
    activity.ChannelData = new
    {
        testProperty = "testValue",
    };

您甚至只能通过特定消息来实现它,例如:

if (turnContext.Activity.Text == "change channel data")
{
    activity.ChannelData = new
    {
        testProperty = "testValue",
    };
}

此选项有很多不同的选择,您只需要确保它不会进入生产。

最新更新