BotAdapter class

定義可將 Bot 連線至服務端點之 Bot 配接器的核心行為。

備註

Bot 配接器會封裝驗證程式,並將活動傳送至 Bot Connector Service 並從中接收活動。 當 Bot 收到活動時,配接器會建立回合內容物件、將它傳遞給 Bot 應用程式邏輯,並將回應傳回給使用者的通道。

配接器會透過 Bot 中間件管線將傳入的活動處理並導向至 Bot 邏輯,然後再次返回。 當每個活動進出 Bot 時,每個中間件都可以在 Bot 邏輯執行前後檢查或處理活動。 使用 使用 方法,將 中間件 物件新增至配接器的中間件集合。

如需詳細資訊,請參閱 Bot 如何運作 和 中間件文章。

屬性

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

取得或設定錯誤處理程式,這個處理程式可以攔截中間件或應用程式中的例外狀況。 設定錯誤處理程式,以攔截中間件或應用程式中的例外狀況。

方法

continueConversation(Partial<ConversationReference>, (revocableContext: TurnContext) => Promise<void>)

以異步方式繼續與用戶的對話,可能是經過一段時間之後。

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

以異步方式繼續與用戶的對話,可能是經過一段時間之後。

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

以異步方式繼續與用戶的對話,可能是經過一段時間之後。

continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

以異步方式繼續與用戶的對話,可能是經過一段時間之後。

createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)

在指定的通道上建立交談。

deleteActivity(TurnContext, Partial<ConversationReference>)

以異步方式刪除現有的活動。 此介面支持架構,並不適合直接為您的程式代碼呼叫。 使用 TurnContext.deleteActivity,從 Bot 程式代碼中刪除活動。

sendActivities(TurnContext, Partial<Activity>[])

以異步方式將一組傳出活動傳送至通道伺服器。 這個方法支持架構,並不適合直接為您的程式代碼呼叫。 使用回合內容的 sendActivity,或從 Bot 程式代碼 sendActivities 方法。

updateActivity(TurnContext, Partial<Activity>)

以異步方式將先前的活動取代為更新的版本。 此介面支持架構,並不適合直接為您的程式代碼呼叫。 使用 TurnContext.updateActivity,從 Bot 程式代碼更新活動。

use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

將中間件新增至配接器的管線。

屬性詳細資料

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

一個表示主動訊息接收者的值。</param>

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

連接器的物件。

<param name=“conversationParameters”>
_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

更新的配接器物件。

備註

中間件會在初始化時新增至配接器。 每回合,配接器都會依您新增它的順序來呼叫其中間件。