как перезапустить соединение с ботом с помощью sdk v4 для node js

Я разрабатываю бота, используя sdk v4 для node js, и я хочу завершить текущий разговор и начать новое преобразование, когда пользователь нажимает кнопку. Я попытался await this.conversationState.clear(turnContext) очистить данные разговора, но идентификатор разговора не изменился. пожалуйста, предложите, как вызвать активность обсуждения, чтобы перезапустить соединение с ботом.


person vaatsalya    schedule 19.12.2018    source источник
comment
Могу я спросить, чего вы надеетесь достичь или чего ожидаете? Вы хотите, чтобы история чата канала была удалена из пользовательского интерфейса? Вы хотите сбросить данные разговора бота? Вы просто пытаетесь сгенерировать новый идентификатор разговора? Сможете ли вы достичь того, чего собираетесь, просто очистив стек диалогов и запустив новый диалог, как если бы пользователь начал новый диалог?   -  person Kyle Delaney    schedule 19.12.2018
comment
Вы все еще работаете над этим?   -  person Kyle Delaney    schedule 27.12.2018
comment
@KyleDelaney Я пытаюсь достичь такой функциональности, как Restart Conversation в эмуляторе Bot Framework, где будет удалена история чата и будет создан новый идентификатор разговора. Я могу стереть историю чата в пользовательском интерфейсе. Я хочу сгенерировать новый идентификатор разговора, когда пользователь нажимает кнопку в bot.js, и я не использую диалоги BotBuilder в своем боте.   -  person vaatsalya    schedule 27.12.2018
comment
Удаление истории чата в пользовательском интерфейсе - это возможность канала, а не бота. Для какого канала вы делаете бота? Я думаю, что это возможно только в веб-чате или в вашем собственном клиенте Direct Line.   -  person Kyle Delaney    schedule 01.01.2019
comment
@KyleDelaney Я использую прямую линию.   -  person vaatsalya    schedule 02.01.2019
comment
Помните, что Emulator имеет открытый исходный код, как и SDK. Возможно, вам удастся изучить поведение кнопки «Начать разговор» и применить его к своему собственному проекту.   -  person Kyle Delaney    schedule 08.01.2019
comment
Вы используете веб-чат или свой собственный клиент Direct Line?   -  person Kyle Delaney    schedule 22.01.2019
comment
Вы все еще работаете над этим?   -  person Kyle Delaney    schedule 08.03.2019
comment
@KyleDelaney да ищет работу.   -  person vaatsalya    schedule 15.03.2019
comment
Так вы используете веб-чат? Любая информация, которую вы предоставите о своем клиенте Direct Line, поможет   -  person Kyle Delaney    schedule 16.03.2019
comment
Приемлем ли мой ответ?   -  person Kyle Delaney    schedule 06.05.2019


Ответы (1)


И эмулятор бота, и веб-чат на портале Azure содержат своего рода кнопку перезапуска, которая очищает историю разговоров и генерирует новый идентификатор разговора. Это достигается путем обновления веб-чата.

Direct Line генерирует новый идентификатор разговора каждый раз, когда секрет обменивается на токен. Если вы передаете секрет прямой линии в веб-чат напрямую и позволяете веб-чату обменивать его на токен, то все, что вам нужно сделать для создания нового идентификатора разговора, - это обновить страницу или фрейм.

Если вы храните секрет где-то в частном порядке (рекомендуется) и сами обмениваете его на токен и передаете токен в веб-чат, просто сделайте это еще раз, чтобы сгенерировать новый идентификатор разговора.

person Kyle Delaney    schedule 20.04.2019