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



我正在研究机器人框架技术,在我的一个项目中,我想将下面的代码行从版本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

这是有效的:

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);
}

请参阅:创造一个Hello World!使用Microsoft Bot框架的Bot

最新更新