共用方式為


BotFrameworkAdapter class

警告

此 API 現已淘汰。

Use CloudAdapter instead.

Extends

BotAdapter

建構函式

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

建立 BotFrameworkAdapter 類別的新實例。

屬性

isStreamingConnectionOpen

用於串流內容,以檢查串流連線是否仍在開啟中,讓 Bot 傳送活動。

TokenApiClientCredentialsKey

繼承的屬性

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

方法

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

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

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

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

createConnectorClient(string)

建立連接器用戶端。

createConnectorClientWithIdentity(string, ClaimsIdentity)

使用 ClaimsIdentity 建立 ConnectorClient。

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

建立具有 ClaimsIdentity 和明確物件的 ConnectorClient。

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

以異步方式建立並開始與頻道上的使用者交談。

createConversation(Partial<ConversationReference>, Partial<ConversationParameters>, (context: TurnContext) => Promise<void>)

以異步方式建立並開始與頻道上的使用者交談。

deleteActivity(TurnContext, Partial<ConversationReference>)

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

deleteConversationMember(TurnContext, string)

以異步方式從目前的交談中移除成員。

emulateOAuthCards(TurnContext | string, boolean)

以異步方式傳送通道的模擬 OAuth 卡片。 這個方法支持架構,並不適合直接為您的程式代碼呼叫。

exchangeToken(TurnContext, string, string, TokenExchangeRequest, CoreAppCredentials)

以異步方式執行令牌交換作業,例如單一登錄。

getAadTokens(TurnContext, string, string[])

以異步方式從令牌伺服器註銷使用者。

getAadTokens(TurnContext, string, string[], CoreAppCredentials)
getActivityMembers(TurnContext, string)

以異步方式列出指定活動的成員。

getConversationMembers(TurnContext)

以異步方式列出目前交談的成員。

getConversations(TurnContext | string, string)

針對指定的通道,以異步方式取得此 Bot 參與之交談的頁面。

getSignInLink(TurnContext, string, AppCredentials, string, string)

以異步方式從令牌伺服器取得登入連結,該連結可做為 SigninCard的一部分傳送。

getSignInLink(TurnContext, string, CoreAppCredentials, string, string)
getSignInResource(TurnContext, string, string, string, CoreAppCredentials)

以異步方式取得要傳送給用戶以進行登入的原始登入資源。

getTokenStatus(TurnContext, string, string)

以異步方式擷取指定使用者每個已設定連線的令牌狀態。

getTokenStatus(TurnContext, string, string, CoreAppCredentials)
getUserToken(TurnContext, string, string)

以異步方式嘗試擷取登入流程中之使用者的令牌。

getUserToken(TurnContext, string, string, CoreAppCredentials)
process(Request, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<void>)

將邏輯函式套用至每個串流要求,以處理 Web 套接字連線。

process(Request, Response, (context: TurnContext) => Promise<void>)

藉由套用邏輯函式來處理 Web 要求。

processActivity(WebRequest, WebResponse, (context: TurnContext) => Promise<any>)

以異步方式建立回合內容,並執行傳入活動的中間件管線。

processActivityDirect(Activity, (context: TurnContext) => Promise<any>)

以異步方式建立回合內容,並執行傳入活動的中間件管線。

processRequest(IReceiveRequest)

檢查要求的有效性,並嘗試將它對應到正確的虛擬端點,然後產生並傳回適當的回應。

sendActivities(TurnContext, Partial<Activity>[])

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

signOutUser(TurnContext, string, string)

以異步方式從令牌伺服器註銷使用者。

signOutUser(TurnContext, string, string, CoreAppCredentials)
updateActivity(TurnContext, Partial<Activity>)

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

useNamedPipe((context: TurnContext) => Promise<any>, string, number, () => void)

將處理程式連線至命名管道伺服器,並開始接聽傳入要求。

useWebSocket(WebRequest, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<any>)

處理初始要求,以透過串流伺服器建立長期連線。

繼承的方法

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>)

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

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

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

建構函式詳細資料

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

建立 BotFrameworkAdapter 類別的新實例。

new BotFrameworkAdapter(settings?: Partial<BotFrameworkAdapterSettings>)

參數

settings

Partial<BotFrameworkAdapterSettings>

自選。 要用於這個配接器實例的設定。

備註

如果 settings 參數不包含 channelServiceopenIdMetadata 值,建構函式會檢查進程的環境變數是否有這些值。 在 Azure 上佈建 Bot 時,可能會設定這些值,如果是的話,Bot 才能在全域雲端或國家雲端中正常運作。

BotFrameworkAdapterSettings 類別會定義可用的配接器設定。

屬性詳細資料

isStreamingConnectionOpen

用於串流內容,以檢查串流連線是否仍在開啟中,讓 Bot 傳送活動。

boolean isStreamingConnectionOpen

屬性值

boolean

如果串流連線已開啟,則為 True,否則為 false。

TokenApiClientCredentialsKey

TokenApiClientCredentialsKey: symbol

屬性值

symbol

繼承的屬性詳細資料

BotIdentityKey

BotIdentityKey: symbol

屬性值

symbol

繼承自 BotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

屬性值

symbol

繼承自 BotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

屬性值

symbol

繼承自 BotAdapter.OAuthScopeKey

onTurnError

onTurnError: (context: TurnContext, error: Error) => Promise<void>

屬性值

(context: TurnContext, error: Error) => Promise<void>

繼承自 BotAdapter.onTurnError

方法詳細資料

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

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

function continueConversation(reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

參數

reference

Partial<ConversationReference>

要繼續之交談的參考。

logic

(context: TurnContext) => Promise<void>

在配接器中間件執行之後呼叫的異步方法。

傳回

Promise<void>

備註

這通常稱為 主動式通知,Bot 可以主動將訊息傳送給交談或使用者,而不需要等待傳入訊息。 例如,Bot 可以使用此方法將通知或優待券傳送給使用者。

若要傳送主動式訊息:

  1. 從傳入活動儲存 ConversationReference 複本。 例如,您可以將交談參考儲存在資料庫中。
  2. 呼叫這個方法,以便稍後繼續交談。 使用儲存的參考來存取交談。
  3. 成功時,配接器會產生 TurnContext 物件,並呼叫 logic 函式處理程式。 使用 logic 函式來傳送主動式訊息。

若要從交談中的任何傳入活動複製參考,請使用 TurnContext.getConversationReference 方法。

這個方法類似於 processActivity 方法。 配接器會建立 TurnContext,並在呼叫 logic 處理程式之前,先透過中間件路由傳送它。 建立的活動會有 『event』 的 類型,以及 'continueConversation' 名稱。

例如:

server.post('/api/notifyUser', async (req, res) => {
   // Lookup previously saved conversation reference.
   const reference = await findReference(req.body.refId);

   // Proactively notify the user.
   if (reference) {
      await adapter.continueConversation(reference, async (context) => {
         await context.sendActivity(req.body.message);
      });
      res.send(200);
   } else {
      res.send(404);
   }
});

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

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

function continueConversation(reference: Partial<ConversationReference>, oAuthScope: string, logic: (context: TurnContext) => Promise<void>): Promise<void>

參數

reference

Partial<ConversationReference>

(xref:botframework-schema.交談的 ConversationReference)要繼續。

oAuthScope

string

要呼叫的任何傳送活動或函式的預定收件者,以繼續交談。

logic

(context: TurnContext) => Promise<void>

自選。 在配接器中間件執行之後呼叫的異步方法。

傳回

Promise<void>

createConnectorClient(string)

建立連接器用戶端。

function createConnectorClient(serviceUrl: string): ConnectorClient

參數

serviceUrl

string

用戶端的服務URL。

傳回

ConnectorClient

ConnectorClient 實例。

備註

在衍生類別中覆寫此專案,以建立用於單元測試的模擬連接器用戶端。

createConnectorClientWithIdentity(string, ClaimsIdentity)

使用 ClaimsIdentity 建立 ConnectorClient。

function createConnectorClientWithIdentity(serviceUrl: string, identity: ClaimsIdentity): Promise<ConnectorClient>

參數

serviceUrl

string

用戶端的服務URL。

identity

ClaimsIdentity

ClaimsIdentity

傳回

Promise<ConnectorClient>

備註

如果 ClaimsIdentity 包含 Skills 要求的宣告,請建立 ConnectorClient 以搭配 Skills 使用。 從 ClaimsIdentity 或實例的認證屬性衍生正確的物件。

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

建立具有 ClaimsIdentity 和明確物件的 ConnectorClient。

function createConnectorClientWithIdentity(serviceUrl: string, identity: ClaimsIdentity, audience: string): Promise<ConnectorClient>

參數

serviceUrl

string

用戶端的服務URL。

identity

ClaimsIdentity

ClaimsIdentity

audience

string

ConnectorClient 訊息的收件者。 一般而言,Bot Framework 通道服務或另一個 Bot 的 AppId。

傳回

Promise<ConnectorClient>

備註

如果修剪的物件不是非零長度字串,物件會衍生自 ClaimsIdentity 或實例的 credentials 屬性。

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

以異步方式建立並開始與頻道上的使用者交談。

function createConversation(reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

參數

reference

Partial<ConversationReference>

要建立之交談的參考。

logic

(context: TurnContext) => Promise<void>

在配接器中間件執行之後呼叫的異步方法。

傳回

Promise<void>

代表異步作的承諾

createConversation(Partial<ConversationReference>, Partial<ConversationParameters>, (context: TurnContext) => Promise<void>)

以異步方式建立並開始與頻道上的使用者交談。

function createConversation(reference: Partial<ConversationReference>, parameters: Partial<ConversationParameters>, logic: (context: TurnContext) => Promise<void>): Promise<void>

參數

reference

Partial<ConversationReference>

要建立之交談的參考。

parameters

Partial<ConversationParameters>

建立交談時所使用的參數

logic

(context: TurnContext) => Promise<void>

在配接器中間件執行之後呼叫的異步方法。

傳回

Promise<void>

代表異步作的承諾

deleteActivity(TurnContext, Partial<ConversationReference>)

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

function deleteActivity(context: TurnContext, reference: Partial<ConversationReference>): Promise<void>

參數

context

TurnContext

回合的內容物件。

reference

Partial<ConversationReference>

要刪除之活動的交談參考資訊。

傳回

Promise<void>

備註

並非所有通道都支援這項作業。 針對沒有的通道,此呼叫可能會擲回例外狀況。

deleteConversationMember(TurnContext, string)

以異步方式從目前的交談中移除成員。

function deleteConversationMember(context: TurnContext, memberId: string): Promise<void>

參數

context

TurnContext

回合的內容物件。

memberId

string

要從交談中移除的成員標識碼。

傳回

Promise<void>

備註

從交談中移除成員的身分識別資訊。

並非所有通道都支援這項作業。 針對沒有的通道,此呼叫可能會擲回例外狀況。

emulateOAuthCards(TurnContext | string, boolean)

以異步方式傳送通道的模擬 OAuth 卡片。 這個方法支持架構,並不適合直接為您的程式代碼呼叫。

function emulateOAuthCards(contextOrServiceUrl: TurnContext | string, emulate: boolean): Promise<void>

參數

contextOrServiceUrl

TurnContext | string

模擬器的 URL。

emulate

boolean

true 將仿真的 OAuth 卡片傳送至模擬器;或 false 不要傳送卡片。

傳回

Promise<void>

備註

在 Bot Framework 模擬器中測試 Bot 時,此方法可以模擬 OAuth 卡片互動。

exchangeToken(TurnContext, string, string, TokenExchangeRequest, CoreAppCredentials)

以異步方式執行令牌交換作業,例如單一登錄。

function exchangeToken(context: TurnContext, connectionName: string, userId: string, tokenExchangeRequest: TokenExchangeRequest, appCredentials?: CoreAppCredentials): Promise<TokenResponse>

參數

context

TurnContext

目前與使用者交談回合的內容。

connectionName

string

要使用的驗證連線名稱。

userId

string

將與令牌相關聯的使用者標識碼。

tokenExchangeRequest

TokenExchangeRequest

交換要求詳細數據,可以是要交換的令牌或要交換的 URI。

appCredentials

CoreAppCredentials

自選。 OAuth 的 CoreAppCredentials。

傳回

Promise<TokenResponse>

getAadTokens(TurnContext, string, string[])

以異步方式從令牌伺服器註銷使用者。

function getAadTokens(context: TurnContext, connectionName: string, resourceUrls: string[]): Promise<[key: string]: TokenResponse>

參數

context

TurnContext

回合的內容物件。

connectionName

string

要使用的驗證連線名稱。

resourceUrls

string[]

要為其擷取令牌的資源URL清單。

傳回

Promise<[key: string]: TokenResponse>

依資源 URL TokenResponse 對象的對應。

getAadTokens(TurnContext, string, string[], CoreAppCredentials)

function getAadTokens(context: TurnContext, connectionName: string, resourceUrls: string[], oAuthAppCredentials?: CoreAppCredentials): Promise<[key: string]: TokenResponse>

參數

context

TurnContext

connectionName

string

resourceUrls

string[]

oAuthAppCredentials

CoreAppCredentials

傳回

Promise<[key: string]: TokenResponse>

getActivityMembers(TurnContext, string)

以異步方式列出指定活動的成員。

function getActivityMembers(context: TurnContext, activityId?: string): Promise<ChannelAccount[]>

參數

context

TurnContext

回合的內容物件。

activityId

string

自選。 要取得成員的活動標識碼。 如果未指定,則會使用目前的活動標識符。

傳回

Promise<ChannelAccount[]>

ChannelAccount 的陣列, 特定活動所涉及的用戶物件。

備註

針對參與指定活動的用戶,傳回 ChannelAccount 對象的陣列。

這與 getConversationMembers 不同,因為它只會傳回直接參與活動的使用者,而不是交談的所有成員。

getConversationMembers(TurnContext)

以異步方式列出目前交談的成員。

function getConversationMembers(context: TurnContext): Promise<ChannelAccount[]>

參數

context

TurnContext

回合的內容物件。

傳回

Promise<ChannelAccount[]>

目前參與交談之所有使用者 ChannelAccount 對象的陣列。

備註

針對目前參與交談的所有用戶,傳回 ChannelAccount 對象的陣列。

這與 getActivityMembers 不同,因為它會傳回交談的所有成員,而不只是直接參與特定活動的成員。

getConversations(TurnContext | string, string)

針對指定的通道,以異步方式取得此 Bot 參與之交談的頁面。

function getConversations(contextOrServiceUrl: TurnContext | string, continuationToken?: string): Promise<ConversationsResult>

參數

contextOrServiceUrl

TurnContext | string

要從通道上交談查詢的通道伺服器 URL 或 TurnContext 物件。

continuationToken

string

自選。 結果上一頁的接續令牌。 請省略此參數或使用 undefined 來擷取結果的第一頁。

傳回

Promise<ConversationsResult>

ConversationsResult 物件,其中包含結果頁面和接續標記。

備註

傳回值的 交談 屬性包含 ConversationMembers 物件的頁面。 每個物件的 識別碼 是 Bot 參與此通道的交談識別碼。 此方法可以從交談內容外部呼叫,因為只需要 Bot 的服務 URL 和認證。

通道批次會產生頁面。 如果結果的 continuationToken 屬性不是空的,則會有更多頁面可供取得。 使用傳回的令牌來取得下一頁的結果。 如果 contextOrServiceUrl 參數是 TurnContext,則會從 contextOrServiceUrl擷取通道伺服器的 URL。活動serviceUrl

以異步方式從令牌伺服器取得登入連結,該連結可做為 SigninCard的一部分傳送。

function getSignInLink(context: TurnContext, connectionName: string, oAuthAppCredentials?: AppCredentials, userId?: string, finalRedirect?: string): Promise<string>

參數

context

TurnContext

回合的內容物件。

connectionName

string

要使用的驗證連線名稱。

oAuthAppCredentials

AppCredentials

適用於 OAuth 的 AppCredentials。

userId

string

將與令牌相關聯的使用者標識碼。

finalRedirect

string

OAuth 流程將重新導向至的最後URL。

傳回

Promise<string>

function getSignInLink(context: TurnContext, connectionName: string, oAuthAppCredentials?: CoreAppCredentials, userId?: string, finalRedirect?: string): Promise<string>

參數

context

TurnContext

connectionName

string

oAuthAppCredentials

CoreAppCredentials

userId

string

finalRedirect

string

傳回

Promise<string>

getSignInResource(TurnContext, string, string, string, CoreAppCredentials)

以異步方式取得要傳送給用戶以進行登入的原始登入資源。

function getSignInResource(context: TurnContext, connectionName: string, userId?: string, finalRedirect?: string, appCredentials?: CoreAppCredentials): Promise<SignInUrlResponse>

參數

context

TurnContext

回合的內容物件。

connectionName

string

要使用的驗證連線名稱。

userId

string

將與令牌相關聯的使用者標識碼。

finalRedirect

string

OAuth 流程將重新導向至的最後URL。

appCredentials

CoreAppCredentials

自選。 OAuth 的 CoreAppCredentials。

傳回

Promise<SignInUrlResponse>

BotSignInGetSignInResourceResponse 物件。

getTokenStatus(TurnContext, string, string)

以異步方式擷取指定使用者每個已設定連線的令牌狀態。

function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string): Promise<TokenStatus[]>

參數

context

TurnContext

回合的內容物件。

userId

string

自選。 如果有,要擷取令牌狀態的使用者標識碼。 否則,會使用傳送目前活動之使用者的標識碼。

includeFilter

string

自選。 要包含之連接的逗號分隔清單。 如果存在,includeFilter 參數會限制這個方法傳回的標記。

傳回

Promise<TokenStatus[]>

擷取 TokenStatus 物件。

getTokenStatus(TurnContext, string, string, CoreAppCredentials)

function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<TokenStatus[]>

參數

context

TurnContext

userId

string

includeFilter

string

oAuthAppCredentials

CoreAppCredentials

傳回

Promise<TokenStatus[]>

getUserToken(TurnContext, string, string)

以異步方式嘗試擷取登入流程中之使用者的令牌。

function getUserToken(context: TurnContext, connectionName: string, magicCode?: string): Promise<TokenResponse>

參數

context

TurnContext

回合的內容物件。

connectionName

string

要使用的驗證連線名稱。

magicCode

string

自選。 使用者輸入的驗證碼。

傳回

Promise<TokenResponse>

包含使用者令牌的 TokenResponse 物件。

getUserToken(TurnContext, string, string, CoreAppCredentials)

function getUserToken(context: TurnContext, connectionName: string, magicCode?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<TokenResponse>

參數

context

TurnContext

connectionName

string

magicCode

string

oAuthAppCredentials

CoreAppCredentials

傳回

Promise<TokenResponse>

process(Request, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<void>)

將邏輯函式套用至每個串流要求,以處理 Web 套接字連線。

function process(req: Request, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<void>): Promise<void>

參數

req
Request

傳入的 HTTP 要求

socket

INodeSocket

對應的 INodeSocket

head

INodeBuffer

對應的 INodeBuffer

logic

(context: TurnContext) => Promise<void>

要套用的邏輯函式

傳回

Promise<void>

代表異步作的承諾。

process(Request, Response, (context: TurnContext) => Promise<void>)

藉由套用邏輯函式來處理 Web 要求。

function process(req: Request, res: Response, logic: (context: TurnContext) => Promise<void>): Promise<void>

參數

req
Request

傳入的 HTTP 要求

res
Response

對應的 HTTP 回應

logic

(context: TurnContext) => Promise<void>

要套用的邏輯函式

傳回

Promise<void>

代表異步作的承諾。

processActivity(WebRequest, WebResponse, (context: TurnContext) => Promise<any>)

以異步方式建立回合內容,並執行傳入活動的中間件管線。

function processActivity(req: WebRequest, res: WebResponse, logic: (context: TurnContext) => Promise<any>): Promise<void>

參數

req
WebRequest

Express 或 Restify 樣式要求物件。

res
WebResponse

Express 或 Restify 樣式響應物件。

logic

(context: TurnContext) => Promise<any>

在中間件管線結尾呼叫的函式。

傳回

Promise<void>

備註

這是 Bot 接收傳入訊息的主要方式,並定義交談中的回合。 此方法:

  1. 剖析並驗證傳入要求。
    • 活動會從傳入要求的本文讀取。 如果無法剖析活動,則會傳回錯誤。
    • 發件者的身分識別會使用 Bot 的 appIdappPassword驗證為模擬器或有效的Microsoft伺服器。 如果未驗證寄件者的身分識別,則會拒絕要求。
  2. 為接收的活動建立 TurnContext 物件。
    • 這個物件會包裝 可撤銷的 Proxy
    • 當這個方法完成時,就會撤銷 Proxy。
  3. 透過配接器的中間件管線傳送回合內容。
  4. 將回合內容傳送至 logic 函式。
    • Bot 此時可能會執行其他路由或處理。 傳回承諾(或提供 async 處理程式),會導致配接器等待任何異步作完成。
    • logic 函式完成之後,會解析中間件所設定的承諾鏈結。

提示

如果您在 Bot 的控制台輸出中看到錯誤 TypeError: Cannot perform 'set' on a proxy that has been revoked,可能是使用異步函式而不使用 await 關鍵詞。 請確定所有異步函式都使用 await!

中間件可以 回合的短途運算。 發生這種情況時,不會呼叫後續中間件和 logic 函式;不過,在這個點之前的所有中間件仍會執行到完成。 如需中間件管線的詳細資訊,請參閱 bot 如何運作中間件 文章。 使用配接器的 使用 方法,將中間件新增至配接器。

例如:

server.post('/api/messages', (req, res) => {
   // Route received request to adapter for processing
   adapter.processActivity(req, res, async (context) => {
       // Process any messages received
       if (context.activity.type === ActivityTypes.Message) {
           await context.sendActivity(`Hello World`);
       }
   });
});

processActivityDirect(Activity, (context: TurnContext) => Promise<any>)

以異步方式建立回合內容,並執行傳入活動的中間件管線。

function processActivityDirect(activity: Activity, logic: (context: TurnContext) => Promise<any>): Promise<void>

參數

activity

Activity

要處理的活動。

logic

(context: TurnContext) => Promise<any>

在中間件管線結尾呼叫的函式。

傳回

Promise<void>

備註

這是 Bot 接收傳入訊息的主要方式,並定義交談中的回合。 此方法:

  1. 為接收的活動建立 TurnContext 物件。
    • 這個物件會包裝 可撤銷的 Proxy
    • 當這個方法完成時,就會撤銷 Proxy。
  2. 透過配接器的中間件管線傳送回合內容。
  3. 將回合內容傳送至 logic 函式。
    • Bot 此時可能會執行其他路由或處理。 傳回承諾(或提供 async 處理程式),會導致配接器等待任何異步作完成。
    • logic 函式完成之後,會解析中間件所設定的承諾鏈結。

中間件可以 回合的短途運算。 發生這種情況時,不會呼叫後續中間件和 logic 函式;不過,在這個點之前的所有中間件仍會執行到完成。 如需中間件管線的詳細資訊,請參閱 bot 如何運作中間件 文章。 使用配接器的 使用 方法,將中間件新增至配接器。

processRequest(IReceiveRequest)

檢查要求的有效性,並嘗試將它對應到正確的虛擬端點,然後產生並傳回適當的回應。

function processRequest(request: IReceiveRequest): Promise<StreamingResponse>

參數

request

IReceiveRequest

來自已連線通道的 ReceiveRequest。

傳回

Promise<StreamingResponse>

BotAdapter 所建立的回應,要傳送至源自要求的用戶端。

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 活動,這會包含所傳遞訊息的標識碼。

signOutUser(TurnContext, string, string)

以異步方式從令牌伺服器註銷使用者。

function signOutUser(context: TurnContext, connectionName?: string, userId?: string): Promise<void>

參數

context

TurnContext

回合的內容物件。

connectionName

string

要使用的驗證連線名稱。

userId

string

要註銷的使用者標識碼。

傳回

Promise<void>

signOutUser(TurnContext, string, string, CoreAppCredentials)

function signOutUser(context: TurnContext, connectionName?: string, userId?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<void>

參數

context

TurnContext

connectionName

string

userId

string

oAuthAppCredentials

CoreAppCredentials

傳回

Promise<void>

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>

Promise,代表作業的 ResourceResponse

備註

並非所有通道都支援這項作業。 針對沒有的通道,此呼叫可能會擲回例外狀況。

useNamedPipe((context: TurnContext) => Promise<any>, string, number, () => void)

將處理程式連線至命名管道伺服器,並開始接聽傳入要求。

function useNamedPipe(logic: (context: TurnContext) => Promise<any>, pipeName?: string, retryCount?: number, onListen?: () => void): Promise<void>

參數

logic

(context: TurnContext) => Promise<any>

將處理傳入要求的邏輯。

pipeName

string

建立伺服器時要使用的命名管道名稱。

retryCount

number

嘗試系結傳入和傳出管道的次數

onListen

() => void

當伺服器同時接聽傳入和傳出管道時引發的選擇性回呼

傳回

Promise<void>

useWebSocket(WebRequest, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<any>)

處理初始要求,以透過串流伺服器建立長期連線。

function useWebSocket(req: WebRequest, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<any>): Promise<void>

參數

req
WebRequest

連接要求。

socket

INodeSocket

Bot(伺服器)與通道/呼叫端之間的原始套接字連線(用戶端)。

head

INodeBuffer

升級數據流的第一個封包。

logic

(context: TurnContext) => Promise<any>

處理 WebSocket 連線存留期傳入串流要求的邏輯。

傳回

Promise<void>

繼承的方法的詳細資料

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>

代表異步作業的承諾

繼承自 BotAdapter.continueConversationAsync

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>

代表異步作業的承諾

繼承自 BotAdapter.continueConversationAsync

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>

代表異步作業的承諾

繼承自 BotAdapter.continueConversationAsync

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 活動傳送至邏輯方法。

如果交談是使用指定的使用者建立的,活動的交談標識碼將會包含新交談的標識碼。

繼承自 BotAdapter.createConversationAsync

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

更新的配接器物件。

備註

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

繼承自 BotAdapter.use