C# 获取使用链时发送到Bot的第一条消息
内部控制器C# 获取使用链时发送到Bot的第一条消息,c#,botframework,C#,Botframework,内部控制器 公共异步任务发布([FromBody]活动) 我执行 wait Conversation.sendaync(活动,()=>MakeJsonRootDialog()) 那么在实现中,我是如何将第一条消息发送到BOT的呢? “对象已完成”仅包含对话期间询问的字段: public static IDialog<JObject> MakeJsonRootDialog(string strDirPath) { return Chain.From(() =&g
公共异步任务发布([FromBody]活动)
我执行
wait Conversation.sendaync(活动,()=>MakeJsonRootDialog())代码>
那么在实现中,我是如何将第一条消息发送到BOT的呢?
“对象已完成”仅包含对话期间询问的字段:
public static IDialog<JObject> MakeJsonRootDialog(string strDirPath)
{
return Chain.From(() => FormDialog.FromForm(preChatInquery.BuildJsonForm))
.Do(async (context, order) =>
{
try
{
var completed = await order;
await context.PostAsync("Processed your order!");
}
catch (FormCanceledException<JObject> e)
{
string reply;
if (e.InnerException == null)
{
reply = $"You quit on {e.Last}--maybe you can finish next time!";
}
else
{
reply = "Sorry, I've had a short circuit. Please try again.";
}
await context.PostAsync(reply);
}
});
publicstaticidialogmakejsonrootdialog(字符串strDirPath)
{
return Chain.From(()=>FormDialog.FromForm(preChatInquery.BuildJsonForm))
.Do(异步(上下文、顺序)=>
{
尝试
{
var完成=等待订单;
wait context.PostAsync(“已处理您的订单!”);
}
捕获(FormCanceledException e)
{
字符串回复;
if(e.InnerException==null)
{
reply=$“您在{e.Last}上退出--也许下次可以完成!”;
}
其他的
{
reply=“对不起,我短路了。请再试一次。”;
}
等待上下文。PostAsync(回复);
}
});
`使用Chain时,首先要做的事情是使用PostToChain()方法将消息发布到Chain中
下面是一个示例
public static readonly IDialog dialog=Chain.PostToChain()
.Select(msg=>msg.Text)
您使用链而非标准对话框的原因是什么?我使用了JSON对话框的示例是..但这是用于使用FormFlow的。这是您想要的吗?是的,我想继续使用该示例-请帮助获取第一条消息,该消息未存储。我没有得到您的答案:How var completed=Wait order;将包含第一个message发送了?什么?而不是做Chain.From…你需要从Chain.PostToChain()开始代码是什么?`public static IDialog MakeJsonRootDialog(string strDirPath){IDialog dialog=Chain.PostToChain().Select(msg=>msg.Text);return Chain.From(()=>FormDialog.FromForm(preChatInquery.BuildJsonForm)).Do(异步(上下文,顺序)=>{try{var completed=wait order;wait context.PostAsync(“已处理您的订单!”);}`你需要将PostToChain与From等链接起来。使用和理解链接的使用是一个高级主题,这就是为什么我问你为什么要使用它。我建议使用标准对话框,而不是链。你仍然可以使用FormFlow抱歉,我不明白你的答案。我希望你能展示如何在商店中使用代码片段发送到bot的第一条消息
public static readonly IDialog<string> dialog = Chain.PostToChain()
.Select(msg => msg.Text)