Нажатие кнопки Bot Builder Messenger неправильно направляется при выходе из диалогового потока
У меня есть карусель HeroCard с несколькими картами и кнопками. Эти кнопки правильно перемещаются при нажатии сразу после отображения карусели. Однако, если их коснуться на более позднем этапе диалога, маршрутизация не работает.
Как я могу получить кнопки для правильной маршрутизации диалога, если они были нажаты вне очереди (то есть нажаты в какое-то время, кроме как сразу после показа карусели)?
1 ответ
Я понял. В версии 3.1 Bot Builder у нас есть возможность прослушивать совпадения фраз с помощью Regex - см. IntentDialog. Используя это, в любом месте вашего диалогового потока пользователь может ввести определенную фазу вне контекста (например, "помощь") и может быть перенаправлен на этот маршрут.
Мы можем использовать тот же метод, когда кнопка нажата. Важно отметить, что сообщение, возвращаемое при нажатии кнопки, НЕ является строкой, видимой пользователем. Вместо этого это маршрут, по которому кнопка надеется направить.
Следовательно, вы можете использовать Regex для прослушивания маршрута, а затем перенаправить на этот маршрут. Например:
var intents = new builder.IntentDialog();
bot.dialog('/', intents);
intents.matches(/^theRouteYourButtonIsDirectingTo\//i, [
function (session) {
// Whatever you want to return
},
]);