C# 如何使用C MS BOT framework SDK V4在使用water fall对话框创建的Web聊天机器人中添加状态管理?

C# 如何使用C MS BOT framework SDK V4在使用water fall对话框创建的Web聊天机器人中添加状态管理?,c#,botframework,chatbot,C#,Botframework,Chatbot,我使用C SDK V4创建了聊天机器人,它有多个water fall dialog类,每个类都用于在选择某个选项时执行特定操作。BOT还使用Oauth提示符嵌入了身份验证 频道:网络频道 SDK:SDKV4 语言:C 现在,我想在water fall对话框中处理或保留状态管理,因为我看到的是在普通echo bot上,如果我在现有的具有water fall对话框的bot上实现相同的行,它将不工作 在使用Oauth提示符对用户进行身份验证后,我将根据登录的用户显示选项 现在,两个或多个用户同时登录或

我使用C SDK V4创建了聊天机器人,它有多个water fall dialog类,每个类都用于在选择某个选项时执行特定操作。BOT还使用Oauth提示符嵌入了身份验证

频道:网络频道

SDK:SDKV4

语言:C

现在,我想在water fall对话框中处理或保留状态管理,因为我看到的是在普通echo bot上,如果我在现有的具有water fall对话框的bot上实现相同的行,它将不工作

在使用Oauth提示符对用户进行身份验证后,我将根据登录的用户显示选项 现在,两个或多个用户同时登录或一个接一个地登录,当第一个用户在显示供选择的选项中来回切换时,另一个登录用户的数据将显示给第一个用户

当我记录了一个关于如何维护登录用户或刷新登录用户的查询时,有人建议我使用状态管理技术,因此这个查询是关于如何在一个waterall对话框中执行的


如果状态管理不是正确的选项,那么请告诉我如何刷新或维护登录的用户id?

这可能与您启动网络聊天时传递给Direct Line的道具有关。在下引用,文档状态为:

不建议将userID指定为静态值,因为这将导致所有用户共享状态。有关更多信息,请参阅API用户ID条目

当您调用生成令牌时,应该在该点传递用户唯一的userID,否则您将遇到共享状态问题

下面是我运行的一段代码,用于访问获取并返回直连令牌的本地API。如您所见,userID在请求中传递,然后在返回时烘焙到令牌中

//侦听传入的请求。 server.post'/directline/token',req,res=>{ //用户标识必须以`dl'开头_` const userId=req.body&&req.body.id?req.body.id:`dl_${Date.now+Math.random.toString36}`; 常量选项={ 方法:“POST”, uri:'https://directline.botframework.com/v3/directline/tokens/generate', 标题:{ 授权:`Bearer${process.env.directLineSecret}`, “访问控制允许来源”:“*” }, json:{ 用户:{ ID:userId } } }; request.postoptions、错误、响应、正文=>{ 如果!错误和响应。状态代码<300{ sendbody案; console.log'Someone requested a token…'; }否则,如果response.statusCode>=400&&response.statusCode<500{ res.sendresponse.statusCode; }否则,如果response.statusCode>=500{ res.statusresponse.statusCode; res.send“调用从DirectLine检索令牌失败”; } }; };
希望有帮助

感谢您的输入,并对回复延迟表示歉意,但我不理解它的完整性,因为我对编码和其他东西以及BOT都是新手。因此,您能否提供es5捆绑包中JavaScript的详细步骤,因为它应该在IE 11中工作,如果有相关的C BOT代码更改,请逐步进行?