在我的机器人内的对话,我存储在ConversationData的标志值,像这样:如何在对话框外部访问Bot Framework对话数据?
context.ConversationData.SetValue("SomeFlag", true);
后来,我需要检查该标志在我MessagesController,之前的消息被分配到一个对话框。按照this previous question我试图通过StateClient检索ConversationData像这样:
public async Task<HttpResponseMessage> Post([FromBody] Activity incomingMessage)
{
StateClient stateClient = incomingMessage.GetStateClient();
BotData userData = await stateClient.BotState.GetConversationDataAsync(message.ChannelId, message.Conversation.Id);
bool finishedQuote = userData.GetProperty<bool>("SomeFlag");
//...
// do conditional logic, then dispatch to a dialog as normal
}
然而,在运行时,userData
变量保存BotData对象,其中userData.Data
是空的,我无法通过检索任何存储的标志GetProperty
。我没有看到relevant documentation中的任何内容可以帮助解决这个问题 - 我在这里可能会做错什么?有什么我误解?
谢谢,这是完美的!只是改变它加载ConversationData而不是UserData,它做到了我所需要的! –
很高兴你得到它的工作 – JasonSowers