BotAdapter class
定义可将机器人连接到服务终结点的机器人适配器的核心行为。
注解
机器人适配器封装身份验证过程,并向 Bot Connector 服务发送活动并从中接收活动。 当机器人收到活动时,适配器会创建轮次上下文对象,将其传递给机器人应用程序逻辑,并将响应发送回用户的通道。
适配器通过机器人中间件管道处理传入活动并将其定向到机器人逻辑,然后再次返回。 当每个活动传入和流出机器人时,每个中间件都可以在机器人逻辑运行前后检查或处理活动。 使用 使用 方法将 中间件 对象添加到适配器的中间件集合。
有关详细信息,请参阅 有关机器人如何工作 和 中间件的文章。
属性
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>
注解
这通常称为 主动通知,机器人可以主动向会话或用户发送消息,而无需等待传入消息。 例如,机器人可以使用此方法向用户发送通知或优惠券。
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[]>
注解
活动将按接收顺序逐个发送。 将为每个发送的活动返回响应对象。 对于 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
更新的适配器对象。
注解
中间件在初始化时添加到适配器。 每个轮次,适配器都会按照添加中间件的顺序调用其中间件。