BotAdapter class
定義可將 Bot 連線至服務端點之 Bot 配接器的核心行為。
備註
Bot 配接器會封裝驗證程式,並將活動傳送至 Bot Connector Service 並從中接收活動。 當 Bot 收到活動時,配接器會建立回合內容物件、將它傳遞給 Bot 應用程式邏輯,並將回應傳回給使用者的通道。
配接器會透過 Bot 中間件管線將傳入的活動處理並導向至 Bot 邏輯,然後再次返回。 當每個活動進出 Bot 時,每個中間件都可以在 Bot 邏輯執行前後檢查或處理活動。 使用 使用 方法,將 中間件 物件新增至配接器的中間件集合。
屬性
| Bot |
|
| Connector |
|
| OAuth |
|
| on |
取得或設定錯誤處理程式,這個處理程式可以攔截中間件或應用程式中的例外狀況。 設定錯誤處理程式,以攔截中間件或應用程式中的例外狀況。 |
方法
屬性詳細資料
BotIdentityKey
BotIdentityKey: symbol
屬性值
symbol
ConnectorClientKey
ConnectorClientKey: symbol
屬性值
symbol
OAuthScopeKey
OAuthScopeKey: symbol
屬性值
symbol
onTurnError
取得或設定錯誤處理程式,這個處理程式可以攔截中間件或應用程式中的例外狀況。 設定錯誤處理程式,以攔截中間件或應用程式中的例外狀況。
(context: TurnContext, error: Error) => Promise<void> onTurnError
屬性值
(context: TurnContext, error: Error) => Promise<void>
代表異步作業的承諾。
備註
錯誤處理程式會使用這些參數呼叫:
| 名字 | 類型 | 描述 |
|---|---|---|
context |
TurnContext | 回合的內容物件。 |
error |
Error |
擲回 Node.js 錯誤。 |
方法詳細資料
continueConversation(Partial<ConversationReference>, (revocableContext: TurnContext) => Promise<void>)
以異步方式繼續與用戶的對話,可能是經過一段時間之後。
function continueConversation(reference: Partial<ConversationReference>, logic: (revocableContext: TurnContext) => Promise<void>): Promise<void>
參數
- reference
-
Partial<ConversationReference>
要繼續之交談的參考。
- logic
-
(revocableContext: TurnContext) => Promise<void>
在配接器中間件執行之後呼叫的異步方法。
傳回
Promise<void>
備註
這通常稱為 主動式通知,Bot 可以主動將訊息傳送給交談或使用者,而不需要等待傳入訊息。 例如,Bot 可以使用此方法將通知或優待券傳送給使用者。
continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)
以異步方式繼續與用戶的對話,可能是經過一段時間之後。
function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>
參數
- claimsIdentity
-
ClaimsIdentity
交談 ClaimsIdentity。
- reference
-
Partial<ConversationReference>
部分 ConversationReference 至交談以繼續。
- logic
-
(context: TurnContext) => Promise<void>
在配接器中間件執行之後呼叫的異步方法。
傳回
Promise<void>
代表異步作業的承諾
continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)
以異步方式繼續與用戶的對話,可能是經過一段時間之後。
function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, audience: string, logic: (context: TurnContext) => Promise<void>): Promise<void>
參數
- claimsIdentity
-
ClaimsIdentity
交談 ClaimsIdentity。
- reference
-
Partial<ConversationReference>
部分 ConversationReference 至交談以繼續。
- audience
-
string
值,表示主動式訊息的收件者。
- logic
-
(context: TurnContext) => Promise<void>
在配接器中間件執行之後呼叫的異步方法。
傳回
Promise<void>
代表異步作業的承諾
continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)
以異步方式繼續與用戶的對話,可能是經過一段時間之後。
function continueConversationAsync(botAppId: string, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>
參數
- botAppId
-
string
Bot 的應用程式識別碼。 單一租用戶中會忽略此參數配接器(控制台、測試等),但對於多租使用者感知的 BotFrameworkAdapter 至關重要。
- reference
-
Partial<ConversationReference>
部分 ConversationReference 至交談以繼續。
- logic
-
(context: TurnContext) => Promise<void>
在配接器中間件執行之後呼叫的異步方法。
傳回
Promise<void>
代表異步作業的承諾
createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)
在指定的通道上建立交談。
function createConversationAsync(_botAppId: string, _channelId: string, _serviceUrl: string, _audience: string, _conversationParameters: ConversationParameters, _logic: (context: TurnContext) => Promise<void>): Promise<void>
參數
- _botAppId
-
string
Bot 的應用程式識別碼。
- _channelId
-
string
通道的標識碼。
- _serviceUrl
-
string
通道的標識碼。
- _audience
-
string
連接器的物件。
- _conversationParameters
-
ConversationParameters
用來建立交談的交談資訊
- _logic
-
(context: TurnContext) => Promise<void>
要呼叫所產生 Bot 回合的方法。
傳回
Promise<void>
代表異步作的承諾
備註
若要開始交談,您的 Bot 必須知道其帳戶資訊和該通道上的用戶帳戶資訊。 大部分_channels只支援起始直接訊息(非群組)交談。
配接器會嘗試在通道上建立新的交談,然後透過其中間件管線將 conversationUpdate 活動傳送至邏輯方法。
如果交談是使用指定的使用者建立的,活動的交談標識碼將會包含新交談的標識碼。
deleteActivity(TurnContext, Partial<ConversationReference>)
以異步方式刪除現有的活動。 此介面支持架構,並不適合直接為您的程式代碼呼叫。 使用 TurnContext.deleteActivity,從 Bot 程式代碼中刪除活動。
function deleteActivity(context: TurnContext, reference: Partial<ConversationReference>): Promise<void>
參數
- context
- TurnContext
回合的內容物件。
- reference
-
Partial<ConversationReference>
要刪除之活動的交談參考資訊。
傳回
Promise<void>
備註
並非所有通道都支援這項作業。 針對沒有的通道,此呼叫可能會擲回例外狀況。
sendActivities(TurnContext, Partial<Activity>[])
以異步方式將一組傳出活動傳送至通道伺服器。 這個方法支持架構,並不適合直接為您的程式代碼呼叫。 使用回合內容的 sendActivity,或從 Bot 程式代碼 sendActivities 方法。
function sendActivities(context: TurnContext, activities: Partial<Activity>[]): Promise<ResourceResponse[]>
參數
- context
- TurnContext
回合的內容物件。
- activities
-
Partial<Activity>[]
要傳送的活動。
傳回
Promise<ResourceResponse[]>
ResourceResponse 的數位
備註
活動會依接收的順序逐一傳送。 系統會針對每個傳送的活動傳回回應物件。 針對 message 活動,這會包含所傳遞訊息的標識碼。
updateActivity(TurnContext, Partial<Activity>)
以異步方式將先前的活動取代為更新的版本。 此介面支持架構,並不適合直接為您的程式代碼呼叫。 使用 TurnContext.updateActivity,從 Bot 程式代碼更新活動。
function updateActivity(context: TurnContext, activity: Partial<Activity>): Promise<ResourceResponse | void>
參數
- context
- TurnContext
回合的內容物件。
- activity
-
Partial<Activity>
要取代之活動的更新版本。
傳回
Promise<ResourceResponse | void>
備註
並非所有通道都支援這項作業。 針對沒有的通道,此呼叫可能會擲回例外狀況。
use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])
將中間件新增至配接器的管線。
function use(middlewares: (context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]): this
參數
- middlewares
-
(context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]
要加入的中間件或中間件處理程式。
傳回
this
更新的配接器物件。
備註
中間件會在初始化時新增至配接器。 每回合,配接器都會依您新增它的順序來呼叫其中間件。