BotAdapter class
定义可将机器人连接到服务终结点的机器人适配器的核心行为。
注解
机器人适配器封装了身份验证过程,并将活动发送到机器人连接器服务并从机器人连接器服务接收活动。 当机器人收到活动时,适配器会创建一个轮次上下文对象,将其传递给机器人应用程序逻辑,并将响应发送回用户的通道。
适配器通过机器人中间件管道处理传入活动并将其定向到机器人逻辑,然后再次返回。 当每个活动流入和流出机器人时,每个中间件都可以在机器人逻辑运行前后对其进行检查或执行操作。 使用 方法将中间件对象添加到适配器的中间件集合。
有关详细信息,请参阅有关 机器人工作原理 和 中间件的文章。
属性
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>
表示异步操作的承诺。
注解
使用以下参数调用错误处理程序:
名称 | 类型 | 说明 |
---|---|---|
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>[])
以异步方式将一组传出活动发送到通道服务器。 此方法支持框架,不打算直接为代码调用此方法。 从机器人代码使用轮次上下文的 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
更新的适配器对象。
注解
中间件在初始化时添加到适配器。 每次轮次,适配器都会按添加它的顺序调用其中间件。