BotAdapter class

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

注解

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

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

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

属性

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

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

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>

表示异步操作的承诺。

注解

使用以下参数调用错误处理程序:

名称 类型 说明
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>

部分 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

机器人的应用程序 ID。 此参数在单个租户中被忽略,适配器 (控制台、测试等) 但对多租户感知的 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

机器人的应用程序 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>[])

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

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

更新的适配器对象。

注解

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