在bot框架中,当我尝试保存状态时,然后从fb messenger运行bot我得到错误“抱歉,我的机器人代码有问题。”
在评论以下行时,此错误不再出现:
await botClient.BotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, botData);
为什么会发生这种情况? 我也尝试了setPrivateConversationDataAsync,它提供了相同的行为
答案 0 :(得分:1)
不应在对话框的上下文中使用默认状态客户端(activity.GetStateClient().BotSate
)。 Bot Builder对话框在消息处理开始时自动加载状态,并在消息处理完成时保持状态。相反,使用 IDialogContext 方法来操纵对话框中的状态:context.UserData.SetValue("UserDataKey", objectToPersist);