如何结束对话?

时间:2017-04-27 12:11:51

标签: c# .net botframework

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

3 个答案:

答案 0 :(得分:2)

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

以下是使用它的一种方法:

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);
}

这也应该在将来的版本中发布:GitHub Pull Request

答案 1 :(得分:0)

json网络令牌(jwt)仅在一个聊天中可用。所以它再次获得converstionId。 session.endConversation()方法提供了一种方便的方法,可以快速终止与用户的对话。用于结束对话。

答案 2 :(得分:0)

有一种更新,更短的方式1

context.EndConversation(EndOfConversationCodes.CompletedSuccessfully);