共用方式為


UniversalBot class

管理 Bot 與跨多個通道的使用者交談。

Extends

建構函式

UniversalBot(IConnector, any, string)

建立 UniversalBot 的新實例。

UniversalBot(IConnector, IDialogWaterfallStep | IDialogWaterfallStep[], string)

建立 UniversalBot 的新實例。

UniversalBot(IConnector, IUniversalBotSettings)

建立 UniversalBot 的新實例。

屬性

name

連結庫的唯一命名空間。 這是用來解決連結庫對話框和當地語系化提示。

RouteTypes

根據預設,從 findRoutes() findRoutes()傳回的 routeType 值。

方法

addRouteResult(IRouteResult, IRouteResult[])

從各種路由尋找方法呼叫的協助程式方法,以管理將候選路由新增至結果集。

  • 如果分數更大,則會傳回集合中目前最符合的新結果集,只包含新的相符專案。
  • 如果分數等於目前的最佳比對,則會新增至現有的集合。
  • 如果分數小於目前的最佳比對,則會忽略它。
beginDialog(IAddress, string, any, (err: Error) => void)

主動啟動與使用者的新對話框。 Bot 與使用者之間的任何目前交談都會取代為新的對話堆疊。

beginDialogAction(string, string, IDialogActionOptions)

註冊全域動作,每當觸發對話框時就會啟動另一個對話框。 新的對話框會推送至堆疊,因此不會自動結束任何目前的工作。 新的對話框結束時,將會繼續目前的工作。 內建提示會在發生此情況時自動重新提示使用者,但藉由在呼叫內建提示時設定 promptAfterAction 旗標,即可停用該行為。

bestRouteResult(IRouteResult[], IDialogState[], string)

尋找在結果集中使用的最佳路由,其中包含多個模棱兩可的路由。 將會使用下列釐清策略:

  1. :自定義路由類型是最高優先順序,而且會優先使用。 這可讓開發人員以非常強大的方式覆寫 Bot 內的路由。
  2. ActiveDialog:使用中的對話框是下一個最高優先順序。
  3. StackAction:堆疊動作是下一個最高優先順序,且會傳回具有最深層堆棧位置的動作。
  4. GlobalAction:全域動作是最低優先順序。 如果 dialogStack 在堆疊最深的連結庫動作中已過去,則會受到青睞。 否則會傳回第一個 。
clone(UniversalBot, string)

傳回現有 Bot 的複本。

connector(string, IConnector)

註冊或傳回特定通道的連接器。

customAction(IDialogActionOptions)

註冊自定義全域動作,以在觸發時呼叫傳入 onSelectAction 處理程式。

dialog(string, Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, boolean)

從連結庫註冊或傳回對話框。

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

註冊全域動作,以在觸發時結束與使用者的交談。

findActiveDialogRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

取得作用中對話框的信賴度,它瞭解目前的訊息。 對話框必須是目前連結庫的成員,否則會傳回0.0的分數。

findDialog(string, string)

搜尋連結庫及其所有相依性中是否有特定對話框。 如果找到,則傳回對話框,否則傳回 null。

findGlobalActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

搜尋連結庫,以查看是否已觸發任何全域動作。

findRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

搜尋候選路由以處理目前的訊息。 若要實際起始訊息的處理,您應該呼叫 selectRoute() 其中一個傳回的結果。 您可以使用 onFindRoute() 覆寫預設搜尋邏輯,而且只會搜尋目前的連結庫,因此您應該分別呼叫階層內每個連結庫 findRoutes()

findStackActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

搜尋工作階段對話框堆疊,以查看是否已觸發任何動作。

forEachDialog((dialog: Dialog, id: string) => void)

列舉所有連結庫對話框。

forEachLibrary((library: Library) => void)

列舉所有連結庫子連結庫。 呼叫端應該採取適當的步驟,以避免列舉階層時循環參考。 在大部分情況下,呼叫 libraryList() 是較佳的選擇,因為它已經包含可避免迴圈的邏輯。

get(string)

傳回設定的目前值。

isInConversation(IAddress, (err: Error, lastAccess: Date) => void)

傳回使用者與 Bot 發生最後一次回合的相關信息。 這可以在 beginDialog 之前呼叫,以判斷使用者目前是否在與 Bot 的交談中。

library(Library | string)

註冊或傳回連結庫相依性。

libraryList(boolean)

傳回階層內唯一連結庫的清單。 應該在連結庫階層的根目錄上呼叫,並避免在兩個子連結庫參考相同的相依連結庫時所建立的迴圈。

loadSession(IAddress, (err: Error, session: Session) => void)

載入任意地址的會話物件。

localePath(string)

取得或設定連結庫 「/locale/」 資料夾的路徑,其中包含其當地語系化提示。 連結庫的提示應該儲存在此路徑下的 “/locale/<IETF_TAG>/.json” 檔案中,其中 “<IETF_TAG>” 代表地區設定的 2-3 位數語言 tage,而 “” 是符合連結庫命名空間的檔名。

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

註冊事件接聽程式。 Bot 會在處理傳入和傳出訊息時發出自己的事件。 它也會轉送從連接器發出的活動相關事件,讓您有一個位置接聽來自 Bot 的所有活動。 來自 Bot 的事件流程如下所示:

已接收訊息

當 Bot 收到新訊息時,它會依序發出下列事件:

lookupUser -> receive -> 傳入 -> getStorageData -> 路由

任何 接收中間件 已安裝的中間件,都會在「接收」和「傳入」事件之間執行。 發出「路由」事件之後,系統會先執行任何 botbuilder 中間件,再將訊息分派至作用中的 Bot 對話方塊。

已接收連接器活動

連接器可以發出活動事件,以通知使用者正在輸入或他們與 Bot 建立朋友等專案。 這些活動會透過訊息等中間件進行路由,但不會透過 Bot 對話框系統路由傳送。 它們只會發出為事件。

連接器事件的流程如下:

lookupUser -> receive -> (activity)

已傳送訊息

Bot 可以傳送多個訊息,讓會話批處理所有傳出訊息,然後儲存 Bot 目前的狀態,再傳遞已傳送的訊息。 您會看到發出單一 'saveStorageData' 事件,然後針對批次中的每個傳出訊息,您會看到下列事件順序:

send -> 傳出

任何 傳送中間件,都會在「傳送」和「傳出」事件之間執行。

onDisambiguateRoute(IDisambiguateRouteHandler)

以自定義實作取代 Bot 的預設路由解構邏輯。

onFindRoutes(IFindRoutesHandler)

以自定義實作取代 findRoutes() 預設路由搜尋邏輯。

onSelectRoute(ISelectRouteHandler)

以自定義實作取代 selectRoute() 的預設邏輯。

receive(IEvent | IEvent[], (err: Error) => void)

收到新事件時呼叫。 這可以手動呼叫,以模擬從使用者接收訊息的 Bot。

recognize(IRecognizeContext, (err: Error, result: IIntentRecognizerResult) => void)

嘗試使用連結庫辨識器,比對用戶文字語句與意圖。 如需詳細資訊,請參閱 IIntentRecognizer.recognize()

recognizer(IIntentRecognizer)

將新的辨識器外掛程式新增至連結庫。

selectActiveDialogRoute(Session, IRouteResult, IDialogState[])

將目前訊息路由傳送至使用中的對話框。

selectGlobalActionRoute(Session, IRouteResult, IDialogState[])

將目前訊息路由傳送至觸發的全域動作。

selectRoute(Session, IRouteResult)

使用選取的路由觸發目前訊息的處理。 您可以使用 onSelectRoute()覆寫默認邏輯。

selectStackActionRoute(Session, IRouteResult, IDialogState[])

將目前的訊息路由傳送至觸發的堆疊動作。

send(IIsMessage | IMessage | IMessage[], (err: Error, addresses?: IAddress[]) => void)

傳送訊息給使用者,而不會中斷目前的交談對話堆棧。

set(string, any)

設定 Bot 上的設定。

use(IMiddlewareMap[])

安裝 Bot 的中間件。 中間件可讓您攔截傳入和傳出事件/訊息。

建構函式詳細資料

UniversalBot(IConnector, any, string)

建立 UniversalBot 的新實例。

new UniversalBot(connector?: IConnector, defaultDialog?: any, libraryName?: string)

參數

connector
IConnector

(選擇性) 用於要求的預設連接器。 如果沒有為通道註冊更特定的連接器,則會使用此連接器。/**

defaultDialog

any

(選擇性) 已接收訊息的預設處理程式。 這可以是個別函式或瀑布序列。

libraryName

string

(選擇性) Bot 的連結庫命名空間。 預設值為 『*』。

UniversalBot(IConnector, IDialogWaterfallStep | IDialogWaterfallStep[], string)

建立 UniversalBot 的新實例。

new UniversalBot(connector: IConnector, defaultDialog?: IDialogWaterfallStep | IDialogWaterfallStep[], libraryName?: string)

參數

connector
IConnector

(選擇性) 用於要求的預設連接器。 如果沒有為通道註冊更特定的連接器,則會使用此連接器。/**

defaultDialog

IDialogWaterfallStep | IDialogWaterfallStep[]

(選擇性) 已接收訊息的預設處理程式。 這可以是個別函式或瀑布序列。

libraryName

string

(選擇性) Bot 的連結庫命名空間。 預設值為 『*』。

UniversalBot(IConnector, IUniversalBotSettings)

建立 UniversalBot 的新實例。

new UniversalBot(connector: IConnector, settings?: IUniversalBotSettings)

參數

connector
IConnector

(選擇性) 用於要求的預設連接器。 如果沒有為通道註冊更特定的連接器,則會使用此連接器。/**

屬性詳細資料

name

連結庫的唯一命名空間。 這是用來解決連結庫對話框和當地語系化提示。

name: string

屬性值

string

RouteTypes

根據預設,從 findRoutes() findRoutes()傳回的 routeType 值。

static RouteTypes: Object

屬性值

Object

方法詳細資料

addRouteResult(IRouteResult, IRouteResult[])

從各種路由尋找方法呼叫的協助程式方法,以管理將候選路由新增至結果集。

  • 如果分數更大,則會傳回集合中目前最符合的新結果集,只包含新的相符專案。
  • 如果分數等於目前的最佳比對,則會新增至現有的集合。
  • 如果分數小於目前的最佳比對,則會忽略它。
static function addRouteResult(route: IRouteResult, current?: IRouteResult[])

參數

route
IRouteResult

要新增至集合的候選路由。

current

IRouteResult[]

(選擇性) 結果集也新增路由。 如果遺失,則會傳回只傳迴路由的新集合。

傳回

beginDialog(IAddress, string, any, (err: Error) => void)

主動啟動與使用者的新對話框。 Bot 與使用者之間的任何目前交談都會取代為新的對話堆疊。

function beginDialog(address: IAddress, dialogId: string, dialogArgs?: any, done?: (err: Error) => void)

參數

address
IAddress

用來啟動新交談的用戶位址。 這應該儲存在先前與使用者的交談期間。 任何現有的交談或對話都會立即終止。

dialogId

string

要開始之對話框的標識碼。

dialogArgs

any

(選擇性) 要傳遞至對話框的自變數。

done

(err: Error) => void

(選擇性) 函式,在作業完成之後叫用。

beginDialogAction(string, string, IDialogActionOptions)

註冊全域動作,每當觸發對話框時就會啟動另一個對話框。 新的對話框會推送至堆疊,因此不會自動結束任何目前的工作。 新的對話框結束時,將會繼續目前的工作。 內建提示會在發生此情況時自動重新提示使用者,但藉由在呼叫內建提示時設定 promptAfterAction 旗標,即可停用該行為。

function beginDialogAction(name: string, id: string, options?: IDialogActionOptions)

參數

name

string

要指派動作的唯一名稱。

id

string

要啟動之對話框的識別碼。

options
IDialogActionOptions

(選擇性) 用來設定動作的選項。 如果指定 符合,動作會接聽使用者說出觸發動作的單字或片語,否則動作必須使用 CardAction.dialogAction() 系結至按鈕以觸發動作。 您也可以使用 dialogArgs,將其他參數傳遞至正在啟動的對話方塊。

傳回

bestRouteResult(IRouteResult[], IDialogState[], string)

尋找在結果集中使用的最佳路由,其中包含多個模棱兩可的路由。 將會使用下列釐清策略:

  1. :自定義路由類型是最高優先順序,而且會優先使用。 這可讓開發人員以非常強大的方式覆寫 Bot 內的路由。
  2. ActiveDialog:使用中的對話框是下一個最高優先順序。
  3. StackAction:堆疊動作是下一個最高優先順序,且會傳回具有最深層堆棧位置的動作。
  4. GlobalAction:全域動作是最低優先順序。 如果 dialogStack 在堆疊最深的連結庫動作中已過去,則會受到青睞。 否則會傳回第一個 。
static function bestRouteResult(routes: IRouteResult[], dialogStack?: IDialogState[], rootLibraryName?: string)

參數

routes

IRouteResult[]

要篩選的候選路由陣列。

dialogStack

IDialogState[]

(選擇性) 對話框堆疊,用來判斷要偏好哪些連結庫全域動作。

rootLibraryName

string

(選擇性) 連結庫命名空間在釐清全域動作時偏好,而且堆疊上沒有對話框。

傳回

clone(UniversalBot, string)

傳回現有 Bot 的複本。

function clone(copyTo?: UniversalBot, newName?: string)

參數

copyTo
UniversalBot

(選擇性) 實例,將目前的 物件複製到 。 如果遺失新的實例,將會建立。

newName

string

(選擇性)如果指定傳回的複本將會重新命名為新的名稱。

傳回

connector(string, IConnector)

註冊或傳回特定通道的連接器。

function connector(channelId: string, connector?: IConnector)

參數

channelId

string

通道的唯一標識碼。 使用 『*』 的 channelId 來參考預設連接器。

connector
IConnector

(選擇性) 連接器來註冊。 如果已省略 channelId 的連接器,則會傳回

傳回

customAction(IDialogActionOptions)

註冊自定義全域動作,以在觸發時呼叫傳入 onSelectAction 處理程式。

function customAction(options: IDialogActionOptions)

參數

options
IDialogActionOptions

用來設定動作的選項。 如果指定 符合,動作會接聽使用者說出觸發動作的單字或片語。 您可以使用 onFindAction提供自定義比對邏輯。

傳回

dialog(string, Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, boolean)

從連結庫註冊或傳回對話框。

function dialog(id: string, dialog?: Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, replace?: boolean)

參數

id

string

要註冊或擷取之對話框的唯一標識碼。

dialog

Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep

(選擇性) 對話框或瀑布式登錄。

  • 對話框:{Dialog} - 要新增的對話框。
  • 對話框:{IDialogWaterfallStep[]} - 要執行的步驟瀑布。 如需詳細資訊,請參閱 IDialogWaterfallStep
  • 對話框:{IDialogWaterfallStep} - 單一步驟瀑布圖。 呼叫內建提示或啟動新的對話框會導致目前對話框在子提示/對話框完成時結束。
replace

boolean

(選擇性)如果為 true,則對話框應該在已註冊時取代現有的對話。

傳回

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

註冊全域動作,以在觸發時結束與使用者的交談。

function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)

參數

name

string

要指派動作的唯一名稱。

msg
TextOrMessageType

(選擇性) 訊息,在結束交談之前傳送使用者。

options
ICancelActionOptions

(選擇性) 用來設定動作的選項。 如果指定 符合,動作會接聽使用者說出觸發動作的單字或片語,否則動作必須使用 CardAction.dialogAction() 系結至按鈕以觸發動作。

傳回

findActiveDialogRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

取得作用中對話框的信賴度,它瞭解目前的訊息。 對話框必須是目前連結庫的成員,否則會傳回0.0的分數。

function findActiveDialogRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])

參數

context
IRecognizeContext

目前交談的唯讀辨識器內容。

callback

(err: Error, routes: IRouteResult[]) => void

應該使用找到的路由叫用的函式。

dialogStack

IDialogState[]

(選擇性) 對話框堆疊以搜尋。 默認行為是搜尋目前對話堆疊的會話。

findDialog(string, string)

搜尋連結庫及其所有相依性中是否有特定對話框。 如果找到,則傳回對話框,否則傳回 null。

function findDialog(libName: string, dialogId: string)

參數

libName

string

包含對話框的連結庫名稱。

dialogId

string

連結庫內對話框的唯一標識符。

傳回

findGlobalActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

搜尋連結庫,以查看是否已觸發任何全域動作。

function findGlobalActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)

參數

context
IRecognizeContext

目前交談的唯讀辨識器內容。

callback

(err: Error, routes: IRouteResult[]) => void

應該使用找到的路由叫用的函式。

findRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)

搜尋候選路由以處理目前的訊息。 若要實際起始訊息的處理,您應該呼叫 selectRoute() 其中一個傳回的結果。 您可以使用 onFindRoute() 覆寫預設搜尋邏輯,而且只會搜尋目前的連結庫,因此您應該分別呼叫階層內每個連結庫 findRoutes()

function findRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)

參數

context
IRecognizeContext

目前交談的唯讀辨識器內容。

callback

(err: Error, routes: IRouteResult[]) => void

應該使用找到的路由叫用的函式。

findStackActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])

搜尋工作階段對話框堆疊,以查看是否已觸發任何動作。

function findStackActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])

參數

context
IRecognizeContext

目前交談的唯讀辨識器內容。

callback

(err: Error, routes: IRouteResult[]) => void

應該使用找到的路由叫用的函式。

dialogStack

IDialogState[]

(選擇性) 對話框堆疊以搜尋。 默認行為是搜尋目前對話堆疊的會話。

forEachDialog((dialog: Dialog, id: string) => void)

列舉所有連結庫對話框。

function forEachDialog(callback: (dialog: Dialog, id: string) => void)

參數

callback

(dialog: Dialog, id: string) => void

反覆運算器函式,以使用每個對話框呼叫。

forEachLibrary((library: Library) => void)

列舉所有連結庫子連結庫。 呼叫端應該採取適當的步驟,以避免列舉階層時循環參考。 在大部分情況下,呼叫 libraryList() 是較佳的選擇,因為它已經包含可避免迴圈的邏輯。

function forEachLibrary(callback: (library: Library) => void)

參數

callback

(library: Library) => void

反覆運算器函式,以與每個子連結庫一起呼叫。

get(string)

傳回設定的目前值。

function get(name: string)

參數

name

string

要傳回的屬性名稱。 有效名稱是 IUniversalBotSettings上的屬性。

傳回

any

isInConversation(IAddress, (err: Error, lastAccess: Date) => void)

傳回使用者與 Bot 發生最後一次回合的相關信息。 這可以在 beginDialog 之前呼叫,以判斷使用者目前是否在與 Bot 的交談中。

function isInConversation(address: IAddress, callback: (err: Error, lastAccess: Date) => void)

參數

address
IAddress

要查閱的用戶位址。 這應該儲存在先前與使用者的交談期間。

callback

(err: Error, lastAccess: Date) => void

使用查詢結果叫用的函式。

library(Library | string)

註冊或傳回連結庫相依性。

function library(lib: Library | string)

參數

lib

Library | string

  • 連結庫:{Library} - 要註冊為相依性的連結庫。
  • 連結庫:{string} - 要查閱的連結庫唯一名稱。 也會搜尋所有相依性。

傳回

libraryList(boolean)

傳回階層內唯一連結庫的清單。 應該在連結庫階層的根目錄上呼叫,並避免在兩個子連結庫參考相同的相依連結庫時所建立的迴圈。

function libraryList(reverse?: boolean)

參數

reverse

boolean

(選擇性)如果 true 清單會從樹葉產生,表示根庫最後會列出。 默認值為 false,表示它會從根目錄產生,而根庫會先列出。

傳回

loadSession(IAddress, (err: Error, session: Session) => void)

載入任意地址的會話物件。

function loadSession(address: IAddress, callback: (err: Error, session: Session) => void)

參數

address
IAddress

要載入的使用者/工作階段位址。 這應該儲存在先前與使用者的交談期間。

callback

(err: Error, session: Session) => void

使用載入的會話叫用的函式。

localePath(string)

取得或設定連結庫 「/locale/」 資料夾的路徑,其中包含其當地語系化提示。 連結庫的提示應該儲存在此路徑下的 “/locale/<IETF_TAG>/.json” 檔案中,其中 “<IETF_TAG>” 代表地區設定的 2-3 位數語言 tage,而 “” 是符合連結庫命名空間的檔名。

function localePath(path?: string)

參數

path

string

(選擇性) 連結庫 「/locale/」 資料夾的路徑。 如果指定,這會更新連結庫路徑。

傳回

string

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

註冊事件接聽程式。 Bot 會在處理傳入和傳出訊息時發出自己的事件。 它也會轉送從連接器發出的活動相關事件,讓您有一個位置接聽來自 Bot 的所有活動。 來自 Bot 的事件流程如下所示:

已接收訊息

當 Bot 收到新訊息時,它會依序發出下列事件:

lookupUser -> receive -> 傳入 -> getStorageData -> 路由

任何 接收中間件 已安裝的中間件,都會在「接收」和「傳入」事件之間執行。 發出「路由」事件之後,系統會先執行任何 botbuilder 中間件,再將訊息分派至作用中的 Bot 對話方塊。

已接收連接器活動

連接器可以發出活動事件,以通知使用者正在輸入或他們與 Bot 建立朋友等專案。 這些活動會透過訊息等中間件進行路由,但不會透過 Bot 對話框系統路由傳送。 它們只會發出為事件。

連接器事件的流程如下:

lookupUser -> receive -> (activity)

已傳送訊息

Bot 可以傳送多個訊息,讓會話批處理所有傳出訊息,然後儲存 Bot 目前的狀態,再傳遞已傳送的訊息。 您會看到發出單一 'saveStorageData' 事件,然後針對批次中的每個傳出訊息,您會看到下列事件順序:

send -> 傳出

任何 傳送中間件,都會在「傳送」和「傳出」事件之間執行。

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

參數

event

string

事件的名稱。 Bot 和連接器特定事件類型:

Bot 事件

  • 錯誤: 發生錯誤。 傳遞 JavaScript Error 物件。
  • lookupUser: 用戶即將查閱位址。 傳遞 IAddress 物件。
  • 接收: 已收到傳入訊息。 傳遞 IEvent 物件。
  • 傳入: 中間件已接收並處理傳入訊息。 傳遞 IMessage 物件。
  • 路由: 連入訊息已系結至會話,並即將透過任何會話中間件路由傳送,然後分派至使用中對話框進行處理。 傳遞 Session 物件。
  • 傳送: 傳出訊息即將傳送至中間件進行處理。 傳遞 IMessage 物件。
  • 傳出: 傳出訊息剛透過中間件傳送,即將傳遞給使用者聊天用戶端。
  • getStorageData: 從記憶體載入工作階段保存的狀態數據。 傳遞 IBotStorageContext 物件。
  • saveStorageData: 會話保存的狀態數據正在寫入記憶體。 傳遞 IBotStorageContext 物件。

ChatConnector 事件

  • conversationUpdate: Bot 已新增至交談或其他交談元數據已變更。 傳遞 IConversationUpdate 物件。
  • contactRelationUpdate: Bot 已新增或從使用者的聯繫人清單中移除。 傳遞 IContactRelationUpdate 物件。
  • 輸入: 交談另一端的使用者或 Bot 正在輸入。 傳遞 IEvent 物件。
listener

(data: any) => void

要叫用的函式。

onDisambiguateRoute(IDisambiguateRouteHandler)

以自定義實作取代 Bot 的預設路由解構邏輯。

function onDisambiguateRoute(handler: IDisambiguateRouteHandler)

參數

handler
IDisambiguateRouteHandler

將搭配候選路由叫用的函式,以將傳入訊息分派至 。

onFindRoutes(IFindRoutesHandler)

以自定義實作取代 findRoutes() 預設路由搜尋邏輯。

function onFindRoutes(handler: IFindRoutesHandler)

參數

handler
IFindRoutesHandler

每當針對連結庫呼叫 findRoutes() 時叫用的函式。

onSelectRoute(ISelectRouteHandler)

以自定義實作取代 selectRoute() 的預設邏輯。

function onSelectRoute(handler: ISelectRouteHandler)

參數

handler
ISelectRouteHandler

呼叫 selectRoute() 時叫用的函式。

receive(IEvent | IEvent[], (err: Error) => void)

收到新事件時呼叫。 這可以手動呼叫,以模擬從使用者接收訊息的 Bot。

function receive(events: IEvent | IEvent[], done?: (err: Error) => void)

參數

events

IEvent | IEvent[]

接收的事件或 (事件陣列)。

done

(err: Error) => void

(選擇性) 函式,在作業完成之後叫用。

recognize(IRecognizeContext, (err: Error, result: IIntentRecognizerResult) => void)

嘗試使用連結庫辨識器,比對用戶文字語句與意圖。 如需詳細資訊,請參閱 IIntentRecognizer.recognize()

function recognize(context: IRecognizeContext, callback: (err: Error, result: IIntentRecognizerResult) => void)

參數

context
IRecognizeContext

目前交談的唯讀辨識器內容。

callback

(err: Error, result: IIntentRecognizerResult) => void

完成辨識時應叫用的函式。

recognizer(IIntentRecognizer)

將新的辨識器外掛程式新增至連結庫。

function recognizer(plugin: IIntentRecognizer)

參數

plugin
IIntentRecognizer

要加入的辨識器。

傳回

selectActiveDialogRoute(Session, IRouteResult, IDialogState[])

將目前訊息路由傳送至使用中的對話框。

function selectActiveDialogRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

參數

session
Session

目前交談的會話物件。

newStack

IDialogState[]

selectGlobalActionRoute(Session, IRouteResult, IDialogState[])

將目前訊息路由傳送至觸發的全域動作。

function selectGlobalActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

參數

session
Session

目前交談的會話物件。

route
IRouteResult

從先前呼叫 傳回給 findRoutes()findGlobalActionRoutes()的路由結果。

newStack

IDialogState[]

selectRoute(Session, IRouteResult)

使用選取的路由觸發目前訊息的處理。 您可以使用 onSelectRoute()覆寫默認邏輯。

function selectRoute(session: Session, route: IRouteResult)

參數

session
Session

目前交談的會話物件。

route
IRouteResult

從先前呼叫傳回的路由結果,findRoutes()

selectStackActionRoute(Session, IRouteResult, IDialogState[])

將目前的訊息路由傳送至觸發的堆疊動作。

function selectStackActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])

參數

session
Session

目前交談的會話物件。

newStack

IDialogState[]

send(IIsMessage | IMessage | IMessage[], (err: Error, addresses?: IAddress[]) => void)

傳送訊息給使用者,而不會中斷目前的交談對話堆棧。

function send(messages: IIsMessage | IMessage | IMessage[], done?: (err: Error, addresses?: IAddress[]) => void)

參數

messages

IIsMessage | IMessage | IMessage[]

要傳送使用者的訊息(或訊息數位)。

done

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

(選擇性) 函式,在作業完成之後叫用。

set(string, any)

設定 Bot 上的設定。

function set(name: string, value: any)

參數

name

string

要設定的屬性名稱。 有效名稱是 IUniversalBotSettings上的屬性。

value

any

要指派給設定的值。

傳回

use(IMiddlewareMap[])

安裝 Bot 的中間件。 中間件可讓您攔截傳入和傳出事件/訊息。

function use(args: IMiddlewareMap[])

參數

args

IMiddlewareMap[]

要安裝的一或多個中間件勾點集合。

傳回