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