MS Bot Framework использует имя пользователя и его свойства на протяжении всего сеанса в различных функциях. - PullRequest
0 голосов
/ 17 марта 2020

Привет, я использую MS Bot Framework, v4, и я использую C# код. Я развернул бота в прямом канале бота.

Я получаю имя пользователя и его свойства в интерфейсе с помощью JavaScript и передаю его боту. Используя управление состоянием, я могу получить имя пользователя в операции onmemberaddedasyn c.

 protected override async Task OnMembersAddedAsync(IList<ChannelAccount> membersAdded, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)

    {
        var userStateAccessors = _userState.CreateProperty<UserProfile>(nameof(UserProfile));
        var userProfile = await userStateAccessors.GetAsync(turnContext, () => new UserProfile());

        foreach (var member in membersAdded)
        {
           if (member.Id != turnContext.Activity.Recipient.Id)
         {
                userProfile.Name = member.Name.Replace('.', ' ');


                await turnContext.SendActivityAsync(MessageFactory.Text($"Hi  **{member.Name.Replace('.',' ')}**. I'm bot, "), cancellationToken);

            }
        }

    }

До этого все работало нормально, когда я пытался использовать имя пользователя в OnMessageActivityAsyn c область действия члена не расширена, поэтому я создал глобальную переменную, которой присвоено имя пользователя, которая теперь расширена и может использоваться в других методах, но это не относится к сеансу текущего пользователя, если некоторые другие пользователи вошел в бот, он берет их имя.

А также, у меня есть некоторые пользовательские свойства, похожие на идентификатор электронной почты, но это изменится во время разговора, и мне нужно захватить это значение и передать его код переднего конца JavaScript для выполнения некоторых действий переднего плана, и это также не спецификация сеанса c.

есть ли какие-либо опции для поддержания сеанса для имени пользователя, используемого в нескольких функциях и других свойствах пользователя.

пожалуйста, предложите способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...