如何在除消息控制器之外的其他控制器中创建StateClient或Connector客户端对象?

时间:2016-07-22 04:36:05

标签: botframework botbuilder

我正在研究僵尸框架技术,在我的一个项目中,我想将这些代码行从版本1更新到版本3僵尸框架。

 var client = new ConnectorClient();
            var getData = await client.Bots.GetUserDataAsync(Constants.botId, userid);
            getData.Data = ar.Serialize();
            var foo = await client.Bots.SetUserDataAsync(Constants.botId, userid, getData);

请告诉我如何解决此问题。

-Pradeep

1 个答案:

答案 0 :(得分:0)

这有效:

if (activity.Type == ActivityTypes.Message)
{
 // Get any saved values
 StateClient sc = activity.GetStateClient();
 BotData userData = sc.BotState.GetPrivateConversationData(activity.ChannelId, activity.Conversation.Id, activity.From.Id);

 boolAskedForUserName = userData.GetProperty<bool>("AskedForUserName");
 strUserName = userData.GetProperty<string>("UserName") ?? "[No User Name]";

 // Set BotUserData
userData.SetProperty<string>("UserName", strUserName);

 // Save BotUserData
    sc.BotState.SetPrivateConversationData(activity.ChannelId, activity.Conversation.Id, activity.From.Id, userData);
}

请参阅: Creating a Hello World! Bot Using The Microsoft Bot Framework