Session class
管理机器人与用户的聊天。
构造函数
Session(ISession |
创建会话的实例。 |
属性
connector | 用于此会话的连接器。 |
conversation |
会话的所有成员都可见的共享对话数据。 |
dialog |
仅对当前对话框可见的数据。 |
library | 对话的机器人根库。 |
localizer | 当前会话的本地化程序。 |
message | 从用户收到的消息。 对于机器人发起的消息,这可能仅包含“to”&“from”字段。 |
private |
仅对用户可见的私人对话数据。 |
session |
会话当前状态信息。 |
user |
在与机器人的所有会话中持久保存的用户的数据。 |
方法
构造函数详细信息
Session(ISessionOptions)
属性详细信息
connector
conversationData
会话的所有成员都可见的共享对话数据。
conversationData: any
属性值
any
dialogData
仅对当前对话框可见的数据。
dialogData: any
属性值
any
library
localizer
message
privateConversationData
仅对用户可见的私人对话数据。
privateConversationData: any
属性值
any
sessionState
userData
在与机器人的所有会话中持久保存的用户的数据。
userData: any
属性值
any
方法详细信息
activeDialogStackEntry(IDialogState[])
返回堆栈活动对话框或 null。
static function activeDialogStackEntry(stack: IDialogState[])
参数
- stack
要返回其条目的对话堆栈。
返回
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()
delay(number)
dialogStack(IDialogState[])
获取/设置当前对话堆栈。 返回当前对话框的副本,因此,如果对返回的堆栈进行了任何更改,则需要通过第二次调用 session.dialogStack()
将其复制回会话。
function dialogStack(newStack?: IDialogState[])
参数
- newStack
(要分配给会话的可选) 对话堆栈。 会话 对话框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)
findDialogStackEntry(IDialogState[], string, boolean)
在对话堆栈中以向前或反向方向搜索特定对话,并返回其索引。
static function findDialogStackEntry(stack: IDialogState[], dialogId: string, reverse?: boolean)
参数
- stack
要搜索的对话堆栈。
- 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
要枚举的对话堆栈。
- 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
要更新的对话堆栈。
返回
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
要更新的对话堆栈。
- start
-
number
要删除的第一个元素的索引。
返回
pushDialogStackEntry(IDialogState[], IDialogState)
将新对话推送到堆栈上,并将其作为活动对话返回。
static function pushDialogStackEntry(stack: IDialogState[], entry: IDialogState)
参数
- stack
要更新的对话堆栈。
- 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()
触发保存对 dialogData、 userData、 conversationdata 或 [privateConversationData' (#privateconversationdata) 所做的更改。
function save()
返回
say(TextType, 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()
toRecognizeContext()
validateDialogStack(IDialogState[], Library)
确保对话堆栈上的所有条目都引用库层次结构中的有效对话。
static function validateDialogStack(stack: IDialogState[], root: Library)
参数
- stack
要验证的对话堆栈。
- 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[]