如何结束对话?

Bri*_*arr 4 .net c# botframework

我已经使用 Bot Framework 创建了一个机器人,并且我正在使用conversationID来维护我的后端对话引擎的状态。我在文档中找不到结束对话的内容。在某些时候,用户必须能够向对话发出“结束或退出”信号,以便下次他们开始对话时,它会得到一个新的conversationID. 我想这应该是一项简单的任务。我正在使用默认的 echo 模板,只是用我的类的方法替换了字母行的计数,该方法返回要发送回用户的文本。

Eri*_*ang 5

现在有一个 ActivityTypes.EndOfConversation(这已经在 sdk 中了)。

这是使用它的一种方法:v3

public static async Task EndConversation(this IBotToUser botToUser, string code = EndOfConversationCodes.CompletedSuccessfully, CancellationToken cancellationToken = default(CancellationToken))
{
    var message = botToUser.MakeMessage();
    message.Type = ActivityTypes.EndOfConversation;
    message.AsEndOfConversationActivity().Code = code;

    await botToUser.PostAsync(message, cancellationToken);
}
Run Code Online (Sandbox Code Playgroud)

这也应该在未来的版本中:GitHub Pull Request


v4

public static async Task EndConversation(this ITurnContext turnContext, string code = EndOfConversationCodes.CompletedSuccessfully, CancellationToken cancellationToken = default(CancellationToken))
{
    var endOfConversation = Activity.CreateEndOfConversationActivity();
    endOfConversation.Code = code;
    await turnContext.SendActivityAsync(endOfConversation, cancellationToken);
}
Run Code Online (Sandbox Code Playgroud)