Постоянное состояние профиля пользователя между пользователями в bot v4

#c# #botframework #azure-bot-service

#c# #botframework #azure-bot-service

Вопрос:

Когда у меня есть два экземпляра бота (это могут быть два окна эмулятора или два браузера, если я развертываю бота в Azure), первое введенное имя является постоянным для всех остальных экземпляров.

Экземпляр один

https://imgur.com/sa7AAbn

Экземпляр два

https://imgur.com/Ct20HE5

Я бы ожидал, что бот снова спросит мое имя, неважно, сколько у меня экземпляров, бот всегда идентифицирует меня как Брунно. Как я могу изменить это поведение?

Я следовал этому руководству

Комментарии:

1. Используете ли вы один и тот же идентификатор пользователя в обоих случаях?

2. Можете ли вы пояснить, что вы подразумеваете под открытием веб-браузера? Используете ли вы Test в веб-чате в Azure или настроили WebChat для работы на вашей собственной веб-странице? Кроме того, в эмуляторе вы пробовали открыть выпадающее меню перезапуска беседы и перезапустить беседу с новым идентификатором пользователя? Как правило, данные будут сохраняться между диалогами, если оба окна диалога используют один и тот же идентификатор пользователя.

3. @stuartd, я провел тест, и в обоих случаях у меня есть некоторый идентификатор пользователя Экземпляр 1: «from»: { «id»: «42f4df72-06c1-406a-b144-95b0b908c379», «name»: «User» }, экземпляр 2: «from»: { «id»:»42f4df72-06c1-406a-b144-95b0b908c379″, «name»: «User» }, как я могу это исправить? Как я могу создать новый идентификатор пользователя для каждого нового экземпляра?

4. привет @tdurnford, я имел в виду одновременное использование двух браузеров, Firefox и Chrome. Я настраиваю веб-чат для работы на моей собственной странице. Перезапуск разговора (перезапуск с новым идентификатором пользователя) решил проблему в эмуляторе. Как я могу исправить эту проблему в веб-чате, чтобы работать на моей собственной странице? Как я могу убедиться, что у каждого пользователя есть новый идентификатор пользователя? Спасибо

Ответ №1:

Если вы не предоставите WebChat уникальный идентификатор для каждого разговора, он будет ссылаться на одни и те же объекты данных в хранилище. Итак, чтобы решить эту проблему, вы должны сгенерировать случайный идентификатор для каждого пользователя или экземпляра беседы. Смотрите фрагмент кода ниже для примера.

 const userID = Date.now()   Math.random().toString(36);

...

window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({ token }),
store,
userID
}, document.getElementById('webchat'));
 

Надеюсь, это поможет!

Ответ №2:

Также проверьте последнюю версию README.md ссылки на webchat WEBCHAT API В нем говорится

Если идентификатор пользователя не указан, по умолчанию используется случайный идентификатор пользователя

Может быть, это будет более эффективно.