BotAdapter class

定义可将机器人连接到服务终结点的机器人适配器的核心行为。

注解

机器人适配器封装身份验证过程,并向 Bot Connector 服务发送活动并从中接收活动。 当机器人收到活动时,适配器会创建轮次上下文对象,将其传递给机器人应用程序逻辑,并将响应发送回用户的通道。

适配器通过机器人中间件管道处理传入活动并将其定向到机器人逻辑,然后再次返回。 当每个活动传入和流出机器人时,每个中间件都可以在机器人逻辑运行前后检查或处理活动。 使用 使用 方法将 中间件 对象添加到适配器的中间件集合。

有关详细信息,请参阅 有关机器人如何工作中间件的文章。

属性

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 从机器人代码中删除活动。

sendActivities(TurnContext, Partial<Activity>[])

异步将一组传出活动发送到通道服务器。 此方法支持框架,不打算直接为代码调用。 使用轮次上下文的 sendActivity 或从机器人代码 sendActivities 方法。

updateActivity(TurnContext, Partial<Activity>)

以异步方式将以前的活动替换为更新的版本。 此接口支持框架,不应直接为代码调用。 使用 TurnContext.updateActivity 从机器人代码更新活动。

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>

表示异步操作的 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>

注解

这通常称为 主动通知,机器人可以主动向会话或用户发送消息,而无需等待传入消息。 例如,机器人可以使用此方法向用户发送通知或优惠券。

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>

对话 部分 对话继续。

logic

(context: TurnContext) => Promise<void>

在适配器中间件运行后调用的异步方法。

返回

Promise<void>

表示异步操作的 promise

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>

对话 部分 对话继续。

audience

string

表示主动消息收件人的值。

logic

(context: TurnContext) => Promise<void>

在适配器中间件运行后调用的异步方法。

返回

Promise<void>

表示异步操作的 promise

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

异步恢复与用户的对话,可能经过一段时间之后。

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

参数

botAppId

string

机器人的应用程序 ID。 在适配器(控制台、测试等)的单租户中忽略此参数,但对于多租户感知的 BotFrameworkAdapter 至关重要。

reference

Partial<ConversationReference>

对话 部分 对话继续。

logic

(context: TurnContext) => Promise<void>

在适配器中间件运行后调用的异步方法。

返回

Promise<void>

表示异步操作的 promise

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

机器人的应用程序 ID。

_channelId

string

通道的 ID。

_serviceUrl

string

通道的 ID。

_audience

string

连接器的受众。

_conversationParameters

ConversationParameters

用于创建对话的对话信息

_logic

(context: TurnContext) => Promise<void>

调用生成的机器人轮次的方法。

返回

Promise<void>

表示异步操作的承诺

注解

若要开始对话,机器人必须知道其帐户信息和该通道上的用户帐户信息。 大多数_channels仅支持启动直接消息(非组)对话。

适配器尝试在通道上创建新会话,然后通过其中间件管道向逻辑方法发送 conversationUpdate 活动。

如果与指定用户建立对话,活动的会话 ID 将包含新会话的 ID。

deleteActivity(TurnContext, Partial<ConversationReference>)

异步删除现有活动。 此接口支持框架,不应直接为代码调用。 使用 TurnContext.deleteActivity 从机器人代码中删除活动。

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

参数

context
TurnContext

轮次的上下文对象。

reference

Partial<ConversationReference>

要删除的活动的对话参考信息。

返回

Promise<void>

注解

并非所有通道都支持此操作。 对于未调用的通道,此调用可能会引发异常。

sendActivities(TurnContext, Partial<Activity>[])

异步将一组传出活动发送到通道服务器。 此方法支持框架,不打算直接为代码调用。 使用轮次上下文的 sendActivity 或从机器人代码 sendActivities 方法。

function sendActivities(context: TurnContext, activities: Partial<Activity>[]): Promise<ResourceResponse[]>

参数

context
TurnContext

轮次的上下文对象。

activities

Partial<Activity>[]

要发送的活动。

返回

Promise<ResourceResponse[]>

ResourceResponse 数组

注解

活动将按接收顺序逐个发送。 将为每个发送的活动返回响应对象。 对于 message 活动,这将包含传递的消息的 ID。

updateActivity(TurnContext, Partial<Activity>)

以异步方式将以前的活动替换为更新的版本。 此接口支持框架,不应直接为代码调用。 使用 TurnContext.updateActivity 从机器人代码更新活动。

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

更新的适配器对象。

注解

中间件在初始化时添加到适配器。 每个轮次,适配器都会按照添加中间件的顺序调用其中间件。