c# - 虚拟助理技能 - 如何杀死/结束您所在的当前技能机器人
问题描述
我试图实现一个处理目录服务的 msbot 技能,例如一个人的联系电话和电子邮件。我的问题是我无法摆脱技能机器人。我已经尝试了一切,但没有任何效果。
我正在尝试对技能机器人执行以下操作以结束或杀死它,并将对话状态返回给父级:
- EndDialogAsync()
- CancelAllDialogsAsync()
- EndComponentAsync()
但不幸的是,我无法返回父机器人,而是不断返回技能机器人,这不是我想要的。我可能做错了,我不确定如何结束技能机器人状态并返回父机器人,因为主要功能在那里。
解决方案
您需要发送一个EndOfConversation
活动。看看我们的技能样本是如何 做到的:
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
if (turnContext.Activity.Text.Contains("end") || turnContext.Activity.Text.Contains("stop"))
{
// Send End of conversation at the end.
await turnContext.SendActivityAsync(MessageFactory.Text($"ending conversation from the skill..."), cancellationToken);
var endOfConversation = Activity.CreateEndOfConversationActivity();
endOfConversation.Code = EndOfConversationCodes.CompletedSuccessfully;
await turnContext.SendActivityAsync(endOfConversation, cancellationToken);
}
[...]
推荐阅读
- c# - 如何使用 C# 和 Smartsheet-API 将当前 rowID 传递给 CopyOrMoveRowDirective 语句?
- c++ - 如何使用 C++ 中的函数返回 char 数组的大小?
- c# - 在 Linq MongodbDriver 的“Where”方法中使用“Any”方法时出现问题
- ansible - Ansible:如何在循环时打印变量名称?
- asp.net-core - ASP.NET Core:在当前页面中显示异常消息的全局处理
- c++ - 代码块编译错误。Cin 未在此范围内声明
- rust - serde:加速自定义枚举反序列化
- java - 如何将我从文件中读取的数据放入哈希图
>? - excel - 如何处理 hasDatepicker 类 - IE 自动化
- python - 为什么 while 循环在此代码中不起作用?