Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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# MS Bot框架仿真器用户id_C#_Emulation_Botframework - Fatal编程技术网

C# MS Bot框架仿真器用户id

C# MS Bot框架仿真器用户id,c#,emulation,botframework,C#,Emulation,Botframework,有没有办法在bot emulator中更改默认用户id(即“默认用户”) 或者它支持同时进行多个对话 我想同时模拟两个不同的用户(因为我的项目中有多种用户类型) 当我尝试创建这样的新对话时 .... var connector = new ConnectorClient(new Uri(context.Activity.ServiceUrl)); var userAccount = new ChannelAccount("//here we need to provide user id whi

有没有办法在bot emulator中更改默认用户id(即“默认用户”)

或者它支持同时进行多个对话

我想同时模拟两个不同的用户(因为我的项目中有多种用户类型)

当我尝试创建这样的新对话时

....
var connector = new ConnectorClient(new Uri(context.Activity.ServiceUrl));
var userAccount = new ChannelAccount("//here we need to provide user id which is always default-user", "Provider");
var botAccount = context.Activity.Recipient;

var conversation = await connector.Conversations.CreateDirectConversationAsync(botAccount, userAccount);
var message = context.MakeMessage();
message.Recipient = userAccount;
message.From = botAccount;
message.Conversation = new ConversationAccount(false, conversation.Id);
await connector.Conversations.SendToConversationAsync((Activity) message);

My emulator在同一聊天窗口中打开新对话

Bot Framework Channel emulator
在以前的版本中具有您需要的功能。在最新版本中,AFAIK更改用户id和组对话模拟无法即时提供。不过,好的一面是,此工具正在做的事情-它只是发送消息http请求到您的
WebApi
端点。这意味着您可以使用
Fiddler
或任何其他类似工具捕获这些请求,然后编辑并重新发出请求。这是一种解决方法,但对于测试pusposes,我认为使用这种方法是可以的

下面是Fiddler屏幕和调试会话的屏幕,显示它正在工作:


如果您想更进一步并使其自动化,那么您可以在botframework网站上构建自己的客户端。

我不知道如何与不同的用户进行多次对话,但您不能更改当前发送消息的用户的id/名称

您可以通过编辑模拟器用于存储其设置的配置文件来实现这一点

在linux上,我在此处找到此设置文件:
~/.config/botframework emulator/botframework emulator/server.json

您将在该json文件中找到“users”部分

将该部分改为:

"users": {
    "currentUserId": "default-user2",
    "usersById": {
      "default-user": {
        "id": "default-user",
        "name": "User"
      },
      "default-user2": {
        "id": "default-user2",
        "name": "User2"
      }
    }
您需要重新启动仿真器,然后您的对话应该是现在的User2,而不是User

当您想将其更改回来时,只需更改:

"currentUserId": "default-user2",
回到

"currentUserId": "default-user",

在windows上,请执行以下步骤:

  • 转到目录 %APPDATA%\botframework仿真器\botframework仿真器

  • 找到server.json文件

  • 在“用户”部分中,替换默认用户 有你需要的身份证(在我的情况下是罗梅尔) “用户”:{ “currentUserId”:“默认用户”, “usersById”:{ “默认用户”:{ “id”:“romel”, “名称”:“用户” } } }

  • 重启机器人模拟器


  • 我在Bot Framework Emulator上工作。我们最近添加了覆盖生成的用户ID以便在对话中使用的功能,而不需要像Fiddler这样的工具。您可以在我们的中使用此功能。我希望这对您的场景有用。

    是的,我知道我不能这样做……但是……奇怪的是,MS不允许在emu中使用它lator,你知道。我还需要收到两个不同用户的响应,不仅仅是请求。有没有办法获得旧版本?Emulator是一个拥有麻省理工许可证的开源项目,所以你不能真的责怪他们。但我完全同意,拥有这样一个功能会很好。我不确定它是否能像旧版本那样工作e在3.5和3.8版本中进行了一些突破性的更改。但是,您可以在github repo上查看较旧的版本:为什么他们删除了功能?是否有任何关于添加用户的文档。我可以看到有
    用户设置-使用您自己的id与bot通信
    ,但不确定如何添加一个以及它是如何工作的.