Как вы упомянули в своем вопросе и как прокомментировал Гэри Лю, правильный способ получить идентификатор библиотеки текущего диалога - использовать session.dialogStack()
. Для UniversalBot без аргумента name
значением по умолчанию является "*"
.
UniversalBot ссылка
Пример:
bot.dialog('greeting', [
(session, args) => {
let currentStack = session.dialogStack()
// [ { id: '*:greeting', state: { 'BotBuilder.Data.WaterfallStep': 0 } } ]
console.log(currentStack[currentStack.length - 1])
// { id: '*:greeting', state: { 'BotBuilder.Data.WaterfallStep': 0 } }
console.log(currentStack[currentStack.length - 1].id)
// '*:greeting'
// Separate the library name from the dialogId by calling
// String.prototype.split() on the stack.id. The splitter we'll use is ":".
console.log(currentStack[currentStack.length - 1].id.split(':'))
// [ '*', 'greeting' ]
session.endDialog('Bye from "greeting"!')
}
]).triggerAction({matches: /hi/ig})