BotAdapter class
定義可將 Bot 連線至服務端點的 Bot 配接器核心行為。
備註
Bot 介面卡可封裝驗證處理程序,並可與 Bot 連接器服務相互傳送和接收活動。 當 Bot 收到活動時,配接器會建立回合內容物件、將它傳遞至 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>
代表非同步作業的 Promise。
備註
使用下列參數呼叫錯誤處理常式:
名稱 | 類型 | 描述 |
---|---|---|
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 的應用程式識別碼。 這個參數會在單一租使用者中忽略 Adapters (Console、Test 等) ,但對多租使用者感知的 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>[])
以非同步方式將一組傳出活動傳送至通道伺服器。 這個方法支援架構,並不適合直接針對您的程式碼呼叫。 從 Bot 程式碼使用回合內容的 sendActivity 或 sendActivities 方法。
function sendActivities(context: TurnContext, activities: Partial<Activity>[]): Promise<ResourceResponse[]>
參數
- context
- TurnContext
回合的內容物件。
- activities
-
Partial<Activity>[]
要傳送的活動。
傳回
Promise<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
更新的配接器物件。
備註
中介軟體會在初始化時新增至配接器。 每一回合,配接器都會依您新增的順序呼叫其中介軟體。