如何在Bot框架中调试渠道数据?

时间:2019-03-07 19:35:24

标签: botframework

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

有没有办法让Bot Framework仿真器发送通道数据,或者在这种情况下有更好的调试方法?

1 个答案:

答案 0 :(得分:1)

仿真器没有一种简单的内置方法来发送自定义channelData。不过,您可以通过几种不同的方式来做到这一点:

本地调试

正如@EricDahlvang提到的(我对此一无所知),您可以debug any channel locally

WebChat

仿真器内置于WebChat中,因此输出将完全相同。但是,您会错过Emulator的一些调试功能。

  1. 克隆WebChat Sample
  2. 使用index.html和您的http://localhost:3978/api/messages编辑channelData
  3. 运行npx serve
  4. 导航到http://localhost:5000

在OnTurnAsync()中修改消息

这仅用于测试/模拟目的,并且您想确保它不会投入生产,但是您可以在OnTurnAsync()内修改传入消息并手动添加channelData。 / p>

类似的东西:

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",
    };
}

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