我有一个机器人,我最近开始从我的直线客户端传递频道数据(用户信息),但是现在这使得依赖于此频道的代码非常困难数据。
有没有办法让bot框架模拟器发送通道数据,还是在这种情况下有更好的调试方法?
模拟器没有一种简单的内置方式来发送自定义channelData
。但是,有几种不同的方法可以做到这一点:
本地调试
正如@ericdahlvang所述(我忘记了),您可以在本地调试任何频道
webchat
模拟器是在网络聊天中构建的,因此输出将完全相同。但是,您错过了模拟器的一些调试功能。
- 克隆一个网络聊天样本
- 用
http://localhost:3978/api/messages
和您的channelData
编辑index.html
- 运行
npx serve
- 导航到
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",
};
}
此选项有很多不同的选择,您只需要确保它不会进入生产。