![](/img/trans.png)
[英]Microsoft Bot Framework - How to get user data from team channel
[英]How to use (get and set) user data with Azure Data Storage and MS Bot Framework?
您可以使用3個數據databags
來存儲狀態數據。 它們生活在context
對象中。 它們是UserData
, ConversationData
和PrivateConversationData
至於如何訪問它們(獲取/設置),這取決於您嘗試從何處獲取數據。 如果您在消息控制器中(無法訪問上下文對象),則必須執行以下操作:
var message = activity as IMessageActivity;
using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, message))
{
var botDataStore = scope.Resolve<IBotDataStore<BotData>>();
var key = Address.FromActivity(message);
ConversationReference r = new ConversationReference();
var userData = await botDataStore.LoadAsync(key, BotStoreType.BotUserData, CancellationToken.None);
//set state data
userData.SetProperty("key 1", "value1");
userData.SetProperty("key 2", "value2");
//get state data
userData.GetProperty<string>("key 1");
userData.GetProperty<string>("key 2");
await botDataStore.SaveAsync(key, BotStoreType.BotUserData, userData, CancellationToken.None);
await botDataStore.FlushAsync(key, CancellationToken.None);
}
在對話框中或當您有權訪問上下文對象時,它就像
context.UserData.SetValue("KEY ONE", "value1");
context.UserData.GetValue<string>("KEY ONE");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.