在机器人框架中将僵尸程序聊天数据保存到表单流程中

时间:2016-11-10 05:43:24

标签: save botframework

我想知道bot框架中是否有任何功能可以完全让用户和机器人聊天。我已经阅读了官方文档,但我理解的方式是,只有这样我们才能保存聊天数据。如果我们必须存储整个数据,我们必须照顾它。 我试过用这个,

StateClient sc = activity.GetStateClient();
BotData userData1 = 
sc.BotState.GetConversationData(activity.ChannelId, activity.Conversation.Id);

userData1.Data = userData1.Data + activity.Text;
sc.BotState.SetConversationData(activity.ChannelId, activity.Conversation.Id, userData1);

这确实会保留用户数据,但我仍然坚持如何在表单流中保留它。 我不确定如何使用SetConversationData将bot和用户的数据保存到表单流。我甚至需要机器人来保持表单流的提示信息。这样我就可以完成b / w用户和机器人的对话。

1 个答案:

答案 0 :(得分:0)

本教程可能有所帮助: Introduction To FormFlow With The Microsoft Bot Framework

在FormFlow期间,用户的数据会自动保留。 FormFlow完成后,您可以像这样坚持:

public static IForm<ProfileForm> BuildForm()
{
    return new FormBuilder<ProfileForm>()
            .Message("Welcome to the profile bot!")
            .OnCompletion(async (context, profileForm) =>
            {
                // Set BotUserData
                context.PrivateConversationData.SetValue<bool>(
                    "ProfileComplete", true);
                context.PrivateConversationData.SetValue<string>(
                    "FirstName", profileForm.FirstName);
                context.PrivateConversationData.SetValue<string>(
                    "LastName", profileForm.LastName);
                context.PrivateConversationData.SetValue<string>(
                    "Gender", profileForm.Gender.ToString());
                // Tell the user that the form is complete
                await context.PostAsync("Your profile is complete.");
            })
            .Build();
}