Поделиться через


Session class

Управляет беседой ботов с пользователем.

Конструкторы

Session(ISessionOptions)

Создает экземпляр сеанса.

Свойства

connector

Соединитель, используемый для этого сеанса.

conversationData

Общие данные беседы, видимые всем членам беседы.

dialogData

Данные, которые отображаются только в текущем диалоговом окне.

library

Корневая библиотека диалогов ботов.

localizer

Локалиизатор для текущего сеанса.

message

Сообщение, полученное от пользователя. Для сообщений, полученных ботом, это может содержать только поля "to" & "from".

privateConversationData

Данные частной беседы, которые отображаются только пользователю.

sessionState

Сведения о текущем состоянии сеансов.

userData

Данные для пользователя, который сохраняется во всех беседах с ботом.

Методы

activeDialogStackEntry(IDialogState[])

Возвращает активное диалоговое окно стека или null.

beginDialog<T>(string, T)

Передает управление беседой в новое диалоговое окно. Текущее диалоговое окно будет приостановлено до завершения дочернего диалога. После завершения текущего диалогового окна вызовет dialogResumed(), где он может проверить любые результаты, возвращаемые дочерним элементом.

cancelDialog(string | number, string, any)

Отменяет существующее диалоговое окно и при необходимости запускает новый его место. В отличие от endDialog() и replaceDialog(), влияющих на текущее диалоговое окно, этот метод позволяет завершить родительский диалог в любом месте стека. Родительский элемент отмененного диалогового окна будет продолжен, как если бы диалоговое окно вызывало endDialog(). Будет возвращен специальный ResumeReason.canceled, чтобы указать, что диалоговое окно отменено.

clearDialogStack()

Очищает текущий стек диалогов.

delay(number)

Вставляет задержку между исходящими сообщениями.

dialogStack(IDialogState[])

Возвращает или задает текущий стек диалогов. Возвращается копия текущего диалогового окна, поэтому при внесении изменений в возвращенный стек они должны быть скопированы обратно в сеанс с помощью второго вызова session.dialogStack().

dispatch(ISessionState, IMessage, Function)

Завершает инициализацию объекта сеанса, а затем направляет сеанс по всем установленным ПО промежуточного слоя. Переданная в next() функция будет вызываться в качестве последнего шага цепочки ПО промежуточного слоя.

endConversation(TextOrMessageType, any[])

Завершает текущую беседу и при необходимости отправляет пользователю сообщение.

endDialog(TextOrMessageType, any[])

Заканчивает текущее диалоговое окно и при необходимости отправляет пользователю сообщение. Родитель будет возобновлен с IDialogResult.resumed причиной завершения .

endDialogWithResult(IDialogResult<any>)

Заканчивает текущий диалог и при необходимости возвращает результат родительскому элементу диалогов.

error(Error)

Сигнализирует об ошибке. Бот будет сигнализировать об ошибке с помощью события on('error', err).

findDialogStackEntry(IDialogState[], string, boolean)

Выполняет поиск стека диалогов для определенного диалогового окна в направлении вперед или обратного направления, возвращая его индекс.

forEachDialogStackEntry(IDialogState[], boolean, (entry: IDialogState, index: number) => void)

Перечисляет все записи диалоговых окон стека в направлении вперед или в обратном направлении.

gettext(string, any[])

Загружает локализованную строку для языка сообщений. Если аргументы передают локализованную строку, она будет рассматриваться как шаблон и отформатирована с помощью sprintf-js (дополнительные сведения см. в их документации.)

isReset()

Возвращает значение true, если сеанс был сброшен.

messageSent()

Возвращает значение true, если сообщение отправлено для этого сеанса.

ngettext(string, string, number)

Загружает форму множественного числа локализованной строки для языка сообщений. Выходная строка будет отформатирована, чтобы включить количество, заменив %d в строке числом.

on(string, (data: any) => void)

Регистрирует прослушиватель событий.

popDialogStackEntry(IDialogState[])

Выводит активное диалоговое окно из стека и возвращает новый, если стек не пуст.

preferredLocale(string, (err: Error) => void)

Возвращает предпочтительный языковой стандарт при отсутствии параметров, в противном случае задает предпочтительный языковой стандарт.

pruneDialogStack(IDialogState[], number)

Удаляет все записи стека диалогов, начиная с указанного индекса, и возвращает новое активное диалоговое окно.

pushDialogStackEntry(IDialogState[], IDialogState)

Отправляет новый диалог в стек и возвращает его в качестве активного диалогового окна.

replaceDialog<T>(string, T)

Заканчивает текущее диалоговое окно и запускает новый его место. Родительское диалоговое окно не будет возобновлено, пока не завершится новое диалоговое окно.

reset(string, any)

Очищает сеансы, вызывающие вызовы, и перезапускает беседу с настроенным диалоговым идентификатором.

routeToActiveDialog(IRecognizeResult)

Отправляет сеанс в активное диалоговое окно или диалоговое окно по умолчанию для обработки.

save()

Активирует сохранение изменений, внесенных в dialogData, userData, conversationdataили [privateConversationData'(#privateconversationdata).

say(TextType, IMessageOptions)
say(TextType, TextType, IMessageOptions)

Отправляет пользователю текст и необязательный SSML.

sayLocalized(string, TextType, TextType, IMessageOptions)

Отправляет текст и необязательный SSML- сообщение пользователю с помощью определенного пространства имен локализации.

send(TextOrMessageType, any[])

Отправляет пользователю сообщение.

sendBatch((err: Error, addresses?: IAddress[]) => void)

Немедленно завершает текущий пакет и отправляет все сообщения в очереди.

sendLocalized(string, TextOrMessageType, any[])

Отправляет пользователю сообщение с помощью определенного пространства имен локализации.

sendTyping()

Отправляет пользователю указание на ввод бота. Для длительных операций это должно вызываться каждые несколько секунд.

toRecognizeContext()

Возвращает объект сеанса в качестве объекта контекста только для чтения.

validateDialogStack(IDialogState[], Library)

Гарантирует, что все записи в стеке диалоговых окон ссылаются на допустимые диалоговые окна в иерархии библиотеки.

watch(string, boolean)

Включает или отключает часы для текущего сеанса.

watchable(string, IWatchableHandler)

Добавляет или извлекает переменную, которую можно просмотреть.

watchableList()

Возвращает список отслеживаемых переменных.

watchList()

Возвращает текущий список отслеживаемых переменных для сеанса.

Сведения о конструкторе

Session(ISessionOptions)

Создает экземпляр сеанса.

new Session(options: ISessionOptions)

Параметры

options
ISessionOptions

Параметры конфигурации сеансов.

Сведения о свойстве

connector

Соединитель, используемый для этого сеанса.

connector: IConnector

Значение свойства

conversationData

Общие данные беседы, видимые всем членам беседы.

conversationData: any

Значение свойства

any

dialogData

Данные, которые отображаются только в текущем диалоговом окне.

dialogData: any

Значение свойства

any

library

Корневая библиотека диалогов ботов.

library: Library

Значение свойства

localizer

Локалиизатор для текущего сеанса.

localizer: ILocalizer

Значение свойства

message

Сообщение, полученное от пользователя. Для сообщений, полученных ботом, это может содержать только поля "to" & "from".

message: IMessage

Значение свойства

privateConversationData

Данные частной беседы, которые отображаются только пользователю.

privateConversationData: any

Значение свойства

any

sessionState

Сведения о текущем состоянии сеансов.

sessionState: ISessionState

Значение свойства

userData

Данные для пользователя, который сохраняется во всех беседах с ботом.

userData: any

Значение свойства

any

Сведения о методе

activeDialogStackEntry(IDialogState[])

Возвращает активное диалоговое окно стека или null.

static function activeDialogStackEntry(stack: IDialogState[])

Параметры

stack

IDialogState[]

Стек диалогов для возврата записи.

Возвращаемое значение

beginDialog<T>(string, T)

Передает управление беседой в новое диалоговое окно. Текущее диалоговое окно будет приостановлено до завершения дочернего диалога. После завершения текущего диалогового окна вызовет dialogResumed(), где он может проверить любые результаты, возвращаемые дочерним элементом.

function beginDialog<T>(id: string, args?: T)

Параметры

id

string

Уникальный идентификатор диалогового окна для запуска.

args

T

(Необязательно) аргументы для передачи в диалоговые окна метода begin().

Возвращаемое значение

cancelDialog(string | number, string, any)

Отменяет существующее диалоговое окно и при необходимости запускает новый его место. В отличие от endDialog() и replaceDialog(), влияющих на текущее диалоговое окно, этот метод позволяет завершить родительский диалог в любом месте стека. Родительский элемент отмененного диалогового окна будет продолжен, как если бы диалоговое окно вызывало endDialog(). Будет возвращен специальный ResumeReason.canceled, чтобы указать, что диалоговое окно отменено.

function cancelDialog(dialogId: string | number, replaceWithId?: string, replaceWithArgs?: any)

Параметры

dialogId

string | number

  • dialogId:{string} — идентификатор диалогового окна. Если в стеке диалоговых окон существует несколько случаев, последнее выполнение будет отменено.
  • dialogId:{number} — индекс диалогового окна в стеке для отмены. Это предпочтительный способ отменить диалоговое окно из обработчика действий, так как он гарантирует, что правильный экземпляр отменен.
replaceWithId

string

(Необязательно) указывает идентификатор для запуска в месте отмененных диалоговых окон. Это предотвращает возобновление родительских диалогов.

replaceWithArgs

any

Аргументы (необязательно) для передачи в новое диалоговое окно.

Возвращаемое значение

clearDialogStack()

Очищает текущий стек диалогов.

function clearDialogStack()

Возвращаемое значение

delay(number)

Вставляет задержку между исходящими сообщениями.

function delay(delay: number)

Параметры

delay

number

Количество миллисекунда, для которых необходимо приостановить.

Возвращаемое значение

dialogStack(IDialogState[])

Возвращает или задает текущий стек диалогов. Возвращается копия текущего диалогового окна, поэтому при внесении изменений в возвращенный стек они должны быть скопированы обратно в сеанс с помощью второго вызова session.dialogStack().

function dialogStack(newStack?: IDialogState[])

Параметры

newStack

IDialogState[]

(Необязательно) стек диалогов для назначения сеансу. Сеансы dialogData будут обновлены, чтобы отразить состояние нового активного диалогового окна.

Возвращаемое значение

dispatch(ISessionState, IMessage, Function)

Завершает инициализацию объекта сеанса, а затем направляет сеанс по всем установленным ПО промежуточного слоя. Переданная в next() функция будет вызываться в качестве последнего шага цепочки ПО промежуточного слоя.

function dispatch(sessionState: ISessionState, message: IMessage, next: Function)

Параметры

sessionState
ISessionState

Текущее состояние сеанса. Если null будет запущена новая беседа, начиная с настроенного dialogId.

message
IMessage

Сообщение для маршрутизации через ПО промежуточного слоя.

next

Function

Функция, вызываемая в качестве последнего шага цепочки по промежуточного слоя.

Возвращаемое значение

endConversation(TextOrMessageType, any[])

Завершает текущую беседу и при необходимости отправляет пользователю сообщение.

function endConversation(message?: TextOrMessageType, args: any[])

Параметры

message
TextOrMessageType

(Необязательно) текст и сообщение для отправки пользователю перед завершением беседы.

args

any[]

(Необязательно) аргументы, используемые для форматирования окончательного выходного текста, если сообщения является {string|string[]}.

Возвращаемое значение

endDialog(TextOrMessageType, any[])

Заканчивает текущее диалоговое окно и при необходимости отправляет пользователю сообщение. Родитель будет возобновлен с IDialogResult.resumed причиной завершения .

function endDialog(message?: TextOrMessageType, args: any[])

Параметры

message
TextOrMessageType

(Необязательно) текст и сообщение для отправки пользователю перед завершением диалогового окна.

args

any[]

(Необязательно) аргументы, используемые для форматирования окончательного выходного текста, если сообщения является {string|string[]}.

Возвращаемое значение

endDialogWithResult(IDialogResult<any>)

Заканчивает текущий диалог и при необходимости возвращает результат родительскому элементу диалогов.

function endDialogWithResult(result?: IDialogResult<any>)

Параметры

result

IDialogResult<any>

(Необязательно) результат для отправки пользователя. Возвращаемое значение должно находиться в поле ответа.

Возвращаемое значение

error(Error)

Сигнализирует об ошибке. Бот будет сигнализировать об ошибке с помощью события on('error', err).

function error(err: Error)

Параметры

err

Error

Произошла ошибка.

Возвращаемое значение

findDialogStackEntry(IDialogState[], string, boolean)

Выполняет поиск стека диалогов для определенного диалогового окна в направлении вперед или обратного направления, возвращая его индекс.

static function findDialogStackEntry(stack: IDialogState[], dialogId: string, reverse?: boolean)

Параметры

stack

IDialogState[]

Стек диалогов для поиска.

dialogId

string

Уникальный идентификатор диалогового окна в <namespace>:<dialog> формате для поиска.

reverse

boolean

(Необязательно) если значение true стек будет выполняться в начале активного диалогового окна и работает до корня.

Возвращаемое значение

number

forEachDialogStackEntry(IDialogState[], boolean, (entry: IDialogState, index: number) => void)

Перечисляет все записи диалоговых окон стека в направлении вперед или в обратном направлении.

static function forEachDialogStackEntry(stack: IDialogState[], reverse: boolean, fn: (entry: IDialogState, index: number) => void)

Параметры

stack

IDialogState[]

Стек диалогов для перечисления.

reverse

boolean

Если значение true, записи будут перечисляться начиная с активного диалогового окна и работы с корневым диалогом.

fn

(entry: IDialogState, index: number) => void

Функция для вызова каждой записи в стеке.

gettext(string, any[])

Загружает локализованную строку для языка сообщений. Если аргументы передают локализованную строку, она будет рассматриваться как шаблон и отформатирована с помощью sprintf-js (дополнительные сведения см. в их документации.)

function gettext(msgid: string, args: any[])

Параметры

msgid

string

Строка для использования в качестве ключа в локализованной строковой таблице. Как правило, это будет только английская версия строки.

args

any[]

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

Возвращаемое значение

string

isReset()

Возвращает значение true, если сеанс был сброшен.

function isReset()

Возвращаемое значение

boolean

messageSent()

Возвращает значение true, если сообщение отправлено для этого сеанса.

function messageSent()

Возвращаемое значение

boolean

ngettext(string, string, number)

Загружает форму множественного числа локализованной строки для языка сообщений. Выходная строка будет отформатирована, чтобы включить количество, заменив %d в строке числом.

function ngettext(msgid: string, msgid_plural: string, count: number)

Параметры

msgid

string

Сингулярная форма строки, используемая в качестве ключа в локализованной строковой таблице. Используйте %d, чтобы указать, где должно идти число.

msgid_plural

string

Многообразная форма строки, которая будет использоваться в качестве ключа в локализованной строковой таблице. Используйте %d, чтобы указать, где должно идти число.

count

number

Число, используемое при определении того, следует ли использовать форму единственного или множественного числа строки.

Возвращаемое значение

string

on(string, (data: any) => void)

Регистрирует прослушиватель событий.

function on(event: string, listener: (data: any) => void)

Параметры

event

string

Имя события. Типы событий:

  • ошибка: произошла ошибка. Передает объект javaScript Error.
listener

(data: any) => void

Функция для вызова.

popDialogStackEntry(IDialogState[])

Выводит активное диалоговое окно из стека и возвращает новый, если стек не пуст.

static function popDialogStackEntry(stack: IDialogState[])

Параметры

stack

IDialogState[]

Стек диалогов для обновления.

Возвращаемое значение

preferredLocale(string, (err: Error) => void)

Возвращает предпочтительный языковой стандарт при отсутствии параметров, в противном случае задает предпочтительный языковой стандарт.

function preferredLocale(locale?: string, callback?: (err: Error) => void)

Параметры

locale

string

(Необязательно) языковой стандарт, используемый для локализации сообщений.

callback

(err: Error) => void

Функция (необязательно) вызывается при загрузке таблицы локализации для предоставленного языкового стандарта.

Возвращаемое значение

string

pruneDialogStack(IDialogState[], number)

Удаляет все записи стека диалогов, начиная с указанного индекса, и возвращает новое активное диалоговое окно.

static function pruneDialogStack(stack: IDialogState[], start: number)

Параметры

stack

IDialogState[]

Стек диалогов для обновления.

start

number

Индекс первого элемента для удаления.

Возвращаемое значение

pushDialogStackEntry(IDialogState[], IDialogState)

Отправляет новый диалог в стек и возвращает его в качестве активного диалогового окна.

static function pushDialogStackEntry(stack: IDialogState[], entry: IDialogState)

Параметры

stack

IDialogState[]

Стек диалогов для обновления.

entry
IDialogState

Запись диалогового окна для отправки в стек.

Возвращаемое значение

replaceDialog<T>(string, T)

Заканчивает текущее диалоговое окно и запускает новый его место. Родительское диалоговое окно не будет возобновлено, пока не завершится новое диалоговое окно.

function replaceDialog<T>(id: string, args?: T)

Параметры

id

string

Уникальный идентификатор диалогового окна для запуска.

args

T

(Необязательно) аргументы для передачи в диалоговые окна метода begin().

Возвращаемое значение

reset(string, any)

Очищает сеансы, вызывающие вызовы, и перезапускает беседу с настроенным диалоговым идентификатором.

function reset(dialogId?: string, dialogArgs?: any)

Параметры

dialogId

string

(Необязательно) Идентификатор запускаемого диалогового окна.

dialogArgs

any

(Необязательно) аргументы для передачи в диалоговые окна метода begin().

Возвращаемое значение

routeToActiveDialog(IRecognizeResult)

Отправляет сеанс в активное диалоговое окно или диалоговое окно по умолчанию для обработки.

function routeToActiveDialog(recognizeResult?: IRecognizeResult)

Параметры

recognizeResult
IRecognizeResult

(Необязательно) результаты, возвращаемые из вызова Library.findRoutes(), Library.findActiveDialogRoutes(), * или Dialog.recognize().

save()

Активирует сохранение изменений, внесенных в dialogData, userData, conversationdataили [privateConversationData'(#privateconversationdata).

function save()

Возвращаемое значение

say(TextType, IMessageOptions)

function say(text: TextType, options?: IMessageOptions)

Параметры

text
TextType
options
IMessageOptions

Возвращаемое значение

say(TextType, TextType, IMessageOptions)

Отправляет пользователю текст и необязательный SSML.

function say(text: TextType, speak?: TextType, options?: IMessageOptions)

Параметры

text
TextType

Текст для отправки пользователю. Это может быть null для отправки только SSML или вложений.

speak
TextType

(Необязательно) сообщение, которое должно быть произнесено пользователю. Сообщение должно быть отформатировано как язык разметки синтеза речи (SSML). Если массив передается, ответ будет выбран случайным образом.

options
IMessageOptions

(Необязательно) свойства, которые должны быть включены в исходящее сообщение.

Возвращаемое значение

sayLocalized(string, TextType, TextType, IMessageOptions)

Отправляет текст и необязательный SSML- сообщение пользователю с помощью определенного пространства имен локализации.

function sayLocalized(libraryNamespace: string, text: TextType, speak?: TextType, options?: IMessageOptions)

Параметры

libraryNamespace

string

Пространство имен, используемое для локализации сообщения.

text
TextType

Текст для отправки пользователю. Это может быть null для отправки только SSML или вложений.

speak
TextType

(Необязательно) сообщение, которое должно быть произнесено пользователю. Сообщение должно быть отформатировано как язык разметки синтеза речи (SSML). Если массив передается, ответ будет выбран случайным образом.

options
IMessageOptions

(Необязательно) свойства, которые должны быть включены в исходящее сообщение.

Возвращаемое значение

send(TextOrMessageType, any[])

Отправляет пользователю сообщение.

function send(message: TextOrMessageType, args: any[])

Параметры

message
TextOrMessageType

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

args

any[]

(Необязательно) аргументы, используемые для форматирования окончательного выходного текста, если сообщения является {string|string[]}.

Возвращаемое значение

sendBatch((err: Error, addresses?: IAddress[]) => void)

Немедленно завершает текущий пакет и отправляет все сообщения в очереди.

function sendBatch(done?: (err: Error, addresses?: IAddress[]) => void)

Параметры

done

(err: Error, addresses?: IAddress[]) => void

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

sendLocalized(string, TextOrMessageType, any[])

Отправляет пользователю сообщение с помощью определенного пространства имен локализации.

function sendLocalized(libraryNamespace: string, message: TextOrMessageType, args: any[])

Параметры

libraryNamespace

string

Пространство имен, используемое для локализации сообщения.

message
TextOrMessageType

Текст или сообщение для отправки пользователю.

args

any[]

(Необязательно) аргументы, используемые для форматирования окончательного выходного текста, если сообщения является {string|string[]}.

Возвращаемое значение

sendTyping()

Отправляет пользователю указание на ввод бота. Для длительных операций это должно вызываться каждые несколько секунд.

function sendTyping()

Возвращаемое значение

toRecognizeContext()

Возвращает объект сеанса в качестве объекта контекста только для чтения.

function toRecognizeContext()

Возвращаемое значение

validateDialogStack(IDialogState[], Library)

Гарантирует, что все записи в стеке диалоговых окон ссылаются на допустимые диалоговые окна в иерархии библиотеки.

static function validateDialogStack(stack: IDialogState[], root: Library)

Параметры

stack

IDialogState[]

Стек диалогов для проверки.

root
Library

Корневой каталог иерархии библиотеки, как правило, бот.

Возвращаемое значение

boolean

watch(string, boolean)

Включает или отключает часы для текущего сеанса.

function watch(variable: string, enable?: boolean)

Параметры

variable

string

Имя переменной для просмотра или отмены проверки.

enable

boolean

(Необязательно) Если значение true, то переменная будет отслеживаться, в противном случае она будет неосторожна. Значение по умолчанию — true.

Возвращаемое значение

watchable(string, IWatchableHandler)

Добавляет или извлекает переменную, которую можно просмотреть.

static function watchable(variable: string, handler?: IWatchableHandler)

Параметры

variable

string

Имя переменной, которую можно просмотреть. Регистр используется только для отображения.

handler
IWatchableHandler

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

Возвращаемое значение

watchableList()

Возвращает список отслеживаемых переменных.

static function watchableList()

Возвращаемое значение

string[]

watchList()

Возвращает текущий список отслеживаемых переменных для сеанса.

function watchList()

Возвращаемое значение

string[]