public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
if (activity.Type == ActivityTypes.Message)
{
Activity isTypingReply = activity.CreateReply();
isTypingReply.Type = ActivityTypes.Typing;
await connector.Conversations.ReplyToActivityAsync(isTypingReply);
StateClient sc = activity.GetStateClient();
BotData userData = await sc.BotState.GetUserDataAsync(activity.ChannelId, activity.From.Id); // have to check on monday
if (!userData.GetProperty<bool>("ChannelUserData"))
{ // fetch user details
Выше фрагмент из приложения MS Bot SDK 1.x для обновления пользовательских данных в состоянии. Сейчас я пытаюсь обновить старое бот-приложение до Microsoft Bot SDK 3.x. Я использую Cosmos Db для хранения значения состояния.
Как я могу сохранить или обновить данные пользователя с помощью ChannelId и From Id? Как только я получаю данные пользователя, я обновляю их как
await sc.BotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, userData);
Через год я снова открываю приложение Microsoft и в нем много изменений. Таким образом, я не мог получить надлежащую документацию. Может ли кто-нибудь помочь / направить меня в процесс хранения состояния с помощью Cosmos DB?
После базовой настройки https://docs.microsoft.com/en-us/azure/bot-service/dotnet/bot-builder-dotnet-state-azure-cosmosdb?view=azure-bot-service-3.0