通过


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)

清除会话调用堆栈,并使用配置的 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)

启用/禁用当前会话的监视。

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

(可选)用于分配给会话的对话框堆栈。 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

要搜索的对话框的唯一 ID,<namespace>:<dialog> 格式。

reverse

boolean

(可选)如果从活动对话框开始搜索堆栈,并按其方式运行到根目录。

返回

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

要启动的对话的唯一 ID。

args

T

(可选)参数,用于传递给对话 begin() 方法。

返回

reset(string, any)

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

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

参数

dialogId

string

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

dialogArgs

any

(可选)参数,用于传递给对话 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

Namespace用于本地化消息。

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

Namespace用于本地化消息。

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