共用方式為


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

以非同步方式將一組傳出活動傳送至通道伺服器。 這個方法支援架構,並不適合直接針對您的程式碼呼叫。 從 Bot 程式碼使用回合內容的 sendActivitysendActivities 方法。

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 或實例的認證屬性。

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 Emulator中測試 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物件,其中包含結果頁面和接續權杖。

備註

傳回值的 conversations 屬性包含 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 物件。
  3. 透過配接器的中介軟體管線傳送回合內容。
  4. 將回合內容傳送至函 logic 式。
    • Bot 此時可能會執行其他路由或處理。 傳回承諾 (或提供 async 處理常式) 會導致配接器等待任何非同步作業完成。
    • logic 式完成之後,會解析中介軟體所設定的承諾鏈結。

提示

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

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

例如:

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 物件。
  2. 透過配接器的中介軟體管線傳送回合內容。
  3. 將回合內容傳送至函 logic 式。
    • Bot 此時可能會執行其他路由或處理。 傳回承諾 (或提供 async 處理常式) 會導致配接器等待任何非同步作業完成。
    • logic 式完成之後,會解析中介軟體所設定的承諾鏈結。

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

processRequest(IReceiveRequest)

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

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

參數

request

IReceiveRequest

來自已連線通道的 ReceiveRequest。

傳回

Promise<StreamingResponse>

由 BotAdapter 所建立的回應,傳送至產生要求的用戶端。

sendActivities(TurnContext, Partial<Activity>[])

以非同步方式將一組傳出活動傳送至通道伺服器。 這個方法支援架構,並不適合直接針對您的程式碼呼叫。 從 Bot 程式碼使用回合內容的 sendActivitysendActivities 方法。

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 的應用程式識別碼。 這個參數會在單一租使用者中忽略 Adapters (Console、Test 等) ,但對多租使用者感知的 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