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)

指示发生错误的信号。 机器人将通过 (“error”,错误) 事件发出信号。

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 替换为 count,将输出字符串格式化为包含计数。

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)

清除会话调用堆栈,并使用配置的 dialogId 重启会话。

routeToActiveDialog(IRecognizeResult)

将会话调度到活动对话或默认对话进行处理。

save()

触发保存对 dialogDatauserDataconversationdata 或 [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)

为当前会话启用/禁用watch。

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

要启动的对话的唯一 ID。

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} - 要结束的对话的 ID。 如果对话堆栈上存在多个对话,则将取消最后一次出现。
  • dialogId:{number} - 要取消的堆栈上对话框的索引。 这是从操作处理程序取消对话的首选方法,因为它可确保取消正确的实例。
replaceWithId

string

(可选) 指定要在取消的对话框位置启动的 ID。 这可以防止对话父级恢复。

replaceWithArgs

any

(传递给新对话框的可选) 参数。

返回

clearDialogStack()

清除当前对话堆栈。

function clearDialogStack()

返回

delay(number)

在传出消息之间插入延迟。

function delay(delay: number)

参数

delay

number

要暂停的毫秒数。

返回

dialogStack(IDialogState[])

获取/设置当前对话堆栈。 返回当前对话框的副本,因此,如果对返回的堆栈进行了任何更改,则需要通过第二次调用 session.dialogStack()将其复制回会话。

function dialogStack(newStack?: IDialogState[])

参数

newStack

IDialogState[]

(要分配给会话的可选) 对话堆栈。 会话 对话框Data 将更新,以反映新活动对话的状态。

返回

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)

指示发生错误的信号。 机器人将通过 (“error”,错误) 事件发出信号。

function error(err: Error)

参数

err

Error

发生的错误。

返回

findDialogStackEntry(IDialogState[], string, boolean)

在对话堆栈中以向前或反向方向搜索特定对话,并返回其索引。

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

参数

stack

IDialogState[]

要搜索的对话堆栈。

dialogId

string

要搜索的对话的唯一 ID( <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 替换为 count,将输出字符串格式化为包含计数。

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

要启动的对话的唯一 ID。

args

T

(传递给 dialogs begin () 方法的可选) 参数。

返回

reset(string, any)

清除会话调用堆栈,并使用配置的 dialogId 重启会话。

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

参数

dialogId

string

(要启动的对话框的可选) ID。

dialogArgs

any

(传递给 dialogs begin () 方法的可选) 参数。

返回

routeToActiveDialog(IRecognizeResult)

将会话调度到活动对话或默认对话进行处理。

function routeToActiveDialog(recognizeResult?: IRecognizeResult)

参数

recognizeResult
IRecognizeResult

(调用 Library.findRoutes () Library.findActiveDialogRoutes () 、 * 或 Dialog.recognize () 返回的可选) 结果。

save()

触发保存对 dialogDatauserDataconversationdata 或 [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)

为当前会话启用/禁用watch。

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

参数

variable

string

要watch/取消监视的变量的名称。

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[]