UniversalBot class
管理 Bot 與跨多個通道的使用者交談。
- Extends
建構函式
| Universal |
建立 UniversalBot 的新實例。 |
| Universal |
建立 UniversalBot 的新實例。 |
| Universal |
建立 UniversalBot 的新實例。 |
屬性
| name | 連結庫的唯一命名空間。 這是用來解決連結庫對話框和當地語系化提示。 |
| Route |
根據預設,從 findRoutes() findRoutes()傳回的 routeType 值。 |
方法
| add |
從各種路由尋找方法呼叫的協助程式方法,以管理將候選路由新增至結果集。
|
| begin |
主動啟動與使用者的新對話框。 Bot 與使用者之間的任何目前交談都會取代為新的對話堆疊。 |
| begin |
註冊全域動作,每當觸發對話框時就會啟動另一個對話框。 新的對話框會推送至堆疊,因此不會自動結束任何目前的工作。 新的對話框結束時,將會繼續目前的工作。 內建提示會在發生此情況時自動重新提示使用者,但藉由在呼叫內建提示時設定 promptAfterAction 旗標,即可停用該行為。 |
| best |
尋找在結果集中使用的最佳路由,其中包含多個模棱兩可的路由。 將會使用下列釐清策略:
|
| clone(Universal |
傳回現有 Bot 的複本。 |
| connector(string, IConnector) | 註冊或傳回特定通道的連接器。 |
| custom |
註冊自定義全域動作,以在觸發時呼叫傳入 onSelectAction 處理程式。 |
| dialog(string, Dialog | IDialog |
從連結庫註冊或傳回對話框。 |
| end |
註冊全域動作,以在觸發時結束與使用者的交談。 |
| find |
取得作用中對話框的信賴度,它瞭解目前的訊息。 對話框必須是目前連結庫的成員,否則會傳回0.0的分數。 |
| find |
搜尋連結庫及其所有相依性中是否有特定對話框。 如果找到,則傳回對話框,否則傳回 null。 |
| find |
搜尋連結庫,以查看是否已觸發任何全域動作。 |
| find |
搜尋候選路由以處理目前的訊息。 若要實際起始訊息的處理,您應該呼叫 selectRoute() 其中一個傳回的結果。
您可以使用 onFindRoute() 覆寫預設搜尋邏輯,而且只會搜尋目前的連結庫,因此您應該分別呼叫階層內每個連結庫 |
| find |
搜尋工作階段對話框堆疊,以查看是否已觸發任何動作。 |
| for |
列舉所有連結庫對話框。 |
| for |
列舉所有連結庫子連結庫。 呼叫端應該採取適當的步驟,以避免列舉階層時循環參考。 在大部分情況下,呼叫 libraryList() 是較佳的選擇,因為它已經包含可避免迴圈的邏輯。 |
| get(string) | 傳回設定的目前值。 |
| is |
傳回使用者與 Bot 發生最後一次回合的相關信息。 這可以在 beginDialog 之前呼叫,以判斷使用者目前是否在與 Bot 的交談中。 |
| library(Library | string) | 註冊或傳回連結庫相依性。 |
| library |
傳回階層內唯一連結庫的清單。 應該在連結庫階層的根目錄上呼叫,並避免在兩個子連結庫參考相同的相依連結庫時所建立的迴圈。 |
| load |
載入任意地址的會話物件。 |
| locale |
取得或設定連結庫 「/locale/」 資料夾的路徑,其中包含其當地語系化提示。 連結庫的提示應該儲存在此路徑下的 “/locale/<IETF_TAG>/.json” 檔案中,其中 “<IETF_TAG>” 代表地區設定的 2-3 位數語言 tage,而 “” 是符合連結庫命名空間的檔名。 |
| on(string, (data: any) => void) | 註冊事件接聽程式。 Bot 會在處理傳入和傳出訊息時發出自己的事件。 它也會轉送從連接器發出的活動相關事件,讓您有一個位置接聽來自 Bot 的所有活動。 來自 Bot 的事件流程如下所示: 已接收訊息當 Bot 收到新訊息時,它會依序發出下列事件:
任何 接收中間件 已安裝的中間件,都會在「接收」和「傳入」事件之間執行。 發出「路由」事件之後,系統會先執行任何 botbuilder 中間件,再將訊息分派至作用中的 Bot 對話方塊。 已接收連接器活動連接器可以發出活動事件,以通知使用者正在輸入或他們與 Bot 建立朋友等專案。 這些活動會透過訊息等中間件進行路由,但不會透過 Bot 對話框系統路由傳送。 它們只會發出為事件。 連接器事件的流程如下:
已傳送訊息Bot 可以傳送多個訊息,讓會話批處理所有傳出訊息,然後儲存 Bot 目前的狀態,再傳遞已傳送的訊息。 您會看到發出單一 'saveStorageData' 事件,然後針對批次中的每個傳出訊息,您會看到下列事件順序:
任何 傳送中間件,都會在「傳送」和「傳出」事件之間執行。 |
| on |
以自定義實作取代 Bot 的預設路由解構邏輯。 |
| on |
以自定義實作取代 findRoutes() 預設路由搜尋邏輯。 |
| on |
以自定義實作取代 selectRoute() 的預設邏輯。 |
| receive(IEvent | IEvent[], (err: Error) => void) | 收到新事件時呼叫。 這可以手動呼叫,以模擬從使用者接收訊息的 Bot。 |
| recognize(IRecognize |
嘗試使用連結庫辨識器,比對用戶文字語句與意圖。 如需詳細資訊,請參閱 IIntentRecognizer.recognize()。 |
| recognizer(IIntent |
將新的辨識器外掛程式新增至連結庫。 |
| select |
將目前訊息路由傳送至使用中的對話框。 |
| select |
將目前訊息路由傳送至觸發的全域動作。 |
| select |
使用選取的路由觸發目前訊息的處理。 您可以使用 onSelectRoute()覆寫默認邏輯。 |
| select |
將目前的訊息路由傳送至觸發的堆疊動作。 |
| send(IIs |
傳送訊息給使用者,而不會中斷目前的交談對話堆棧。 |
| set(string, any) | 設定 Bot 上的設定。 |
| use(IMiddleware |
安裝 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
(選擇性) 已接收訊息的預設處理程式。 這可以是個別函式或瀑布序列。
- libraryName
-
string
(選擇性) Bot 的連結庫命名空間。 預設值為 『*』。
UniversalBot(IConnector, IUniversalBotSettings)
建立 UniversalBot 的新實例。
new UniversalBot(connector: IConnector, settings?: IUniversalBotSettings)
參數
- connector
- IConnector
(選擇性) 用於要求的預設連接器。 如果沒有為通道註冊更特定的連接器,則會使用此連接器。/**
- settings
- IUniversalBotSettings
屬性詳細資料
name
連結庫的唯一命名空間。 這是用來解決連結庫對話框和當地語系化提示。
name: string
屬性值
string
RouteTypes
方法詳細資料
addRouteResult(IRouteResult, IRouteResult[])
從各種路由尋找方法呼叫的協助程式方法,以管理將候選路由新增至結果集。
- 如果分數更大,則會傳回集合中目前最符合的新結果集,只包含新的相符專案。
- 如果分數等於目前的最佳比對,則會新增至現有的集合。
- 如果分數小於目前的最佳比對,則會忽略它。
static function addRouteResult(route: IRouteResult, current?: IRouteResult[])
參數
- route
- IRouteResult
要新增至集合的候選路由。
- current
(選擇性) 結果集也新增路由。 如果遺失,則會傳回只傳迴路由的新集合。
傳回
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)
尋找在結果集中使用的最佳路由,其中包含多個模棱兩可的路由。 將會使用下列釐清策略:
- :自定義路由類型是最高優先順序,而且會優先使用。 這可讓開發人員以非常強大的方式覆寫 Bot 內的路由。
- ActiveDialog:使用中的對話框是下一個最高優先順序。
- StackAction:堆疊動作是下一個最高優先順序,且會傳回具有最深層堆棧位置的動作。
-
GlobalAction:全域動作是最低優先順序。 如果
dialogStack在堆疊最深的連結庫動作中已過去,則會受到青睞。 否則會傳回第一個 。
static function bestRouteResult(routes: IRouteResult[], dialogStack?: IDialogState[], rootLibraryName?: string)
參數
- routes
要篩選的候選路由陣列。
- dialogStack
(選擇性) 對話框堆疊,用來判斷要偏好哪些連結庫全域動作。
- 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。
- 對話框:{IDialogWaterfallStep} - 單一步驟瀑布圖。 呼叫內建提示或啟動新的對話框會導致目前對話框在子提示/對話框完成時結束。
- replace
-
boolean
(選擇性)如果為 true,則對話框應該在已註冊時取代現有的對話。
傳回
endConversationAction(string, TextOrMessageType, ICancelActionOptions)
註冊全域動作,以在觸發時結束與使用者的交談。
function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
參數
- name
-
string
要指派動作的唯一名稱。
(選擇性) 訊息,在結束交談之前傳送使用者。
- 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
(選擇性) 對話框堆疊以搜尋。 默認行為是搜尋目前對話堆疊的會話。
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
(選擇性) 對話框堆疊以搜尋。 默認行為是搜尋目前對話堆疊的會話。
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,表示它會從根目錄產生,而根庫會先列出。
傳回
Library[]
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)
參數
- 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
目前交談的會話物件。
- route
- IRouteResult
- newStack
selectGlobalActionRoute(Session, IRouteResult, IDialogState[])
將目前訊息路由傳送至觸發的全域動作。
function selectGlobalActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])
參數
- session
- Session
目前交談的會話物件。
- route
- IRouteResult
從先前呼叫 傳回給 findRoutes() 或 findGlobalActionRoutes()的路由結果。
- newStack
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
目前交談的會話物件。
- route
- IRouteResult
- newStack
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
要安裝的一或多個中間件勾點集合。