ActivityHandler class
机器人的事件发出活动处理程序。 扩展 ActivityHandlerBase。
- 扩展
注解
这提供了一个可扩展类,用于以事件驱动的方式处理传入活动。 可以为每个事件类型注册任意一组处理程序。
若要为事件注册处理程序,请对事件 方法使用相应的。 如果为事件注册了多个处理程序,则它们按注册顺序运行。
此对象在处理传入活动时发出一系列 事件。 处理程序可以通过不调用延续函数来停止事件的传播。
事件类型 | 描述 |
---|---|
转 | 为每个活动首先发出。 |
特定于类型 | 针对特定活动类型发出,然后针对任何子类型发出事件。 |
子类型 | 根据活动内容针对某些专用事件发出。 |
对话 | 作为最终活动处理事件发出。 |
例如:
const bot = new ActivityHandler();
server.post('/api/messages', (req, res) => {
adapter.processActivity(req, res, async (context) => {
// Route to bot's activity logic.
await bot.run(context);
});
});
bot.onTurn(async (context, next) => {
// Handle a "turn" event.
await context.sendActivity(`${ context.activity.type } activity received.`);
// Continue with further processing.
await next();
})
.onMessage(async (context, next) => {
// Handle a message activity.
await context.sendActivity(`Echo: ${ context.activity.text }`);
// Continue with further processing.
await next();
});
另请参阅
方法
on |
为 命令 活动注册活动事件处理程序。 |
on |
为 CommandResult 活动注册活动事件处理程序。 |
on |
为每个传入会话更新活动发出的 会话更新 事件注册活动事件处理程序。 |
on |
为 对话框 事件注册活动事件处理程序,该事件作为传入活动的最后一个事件发出。 |
on |
为会话 活动结束 注册活动事件处理程序。 |
on |
为针对每个传入事件活动发出的 事件 事件注册活动事件处理程序。 |
on |
为 installationupdate 活动注册活动事件处理程序。 |
on |
为 installationupdate 添加 活动注册活动事件处理程序。 |
on |
注册 安装删除 活动的活动事件处理程序。 |
on |
为添加 事件 成员注册活动事件处理程序,该事件针对包含添加到会话的成员的任何传入会话更新活动发出。 |
on |
为删除 事件 成员注册活动事件处理程序,该事件针对包含从会话中删除的成员的任何传入会话更新活动发出。 |
on |
为每个传入消息活动活动发出 消息 事件注册活动事件处理程序。 |
on |
为每个传入消息反应活动发出 消息反应 事件注册活动事件处理程序。 |
on |
为添加 事件 反应注册活动事件处理程序,该事件针对描述添加到消息中的响应的任何传入消息反应活动发出。 |
on |
为已删除 事件 反应注册活动事件处理程序,该事件针对描述从消息中删除的反应的任何传入消息反应活动发出。 |
on |
为任何传入 |
on |
为 轮次 事件注册活动事件处理程序,无论类型如何,都会针对每个传入活动发出。 |
on |
为键入 活动 注册活动事件处理程序。 |
on |
为 无法识别的活动类型 事件注册活动事件处理程序,该事件针对传入活动发出,其类型为 ActivityHandler 不提供事件处理程序。 |
run(Turn |
调用以启动事件排放过程。 |
方法详细信息
onCommand(BotHandler)
为 命令 活动注册活动事件处理程序。
function onCommand(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
若要处理 Command 事件,请使用 onCommand 类型特定的事件处理程序。
onCommandResult(BotHandler)
为 CommandResult 活动注册活动事件处理程序。
function onCommandResult(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
若要处理 CommandResult 事件,请使用 onCommandResult 类型特定的事件处理程序。
onConversationUpdate(BotHandler)
为每个传入会话更新活动发出的 会话更新 事件注册活动事件处理程序。
function onConversationUpdate(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
对话更新活动描述对对话元数据的更改,例如游戏、参与者或其他特定于频道的信息。
若要在会话中添加或删除成员时进行处理,请使用 onMembersAdded 和 onMembersRemoved 子类型事件处理程序。
onDialog(BotHandler)
为 对话框 事件注册活动事件处理程序,该事件作为传入活动的最后一个事件发出。
function onDialog(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
onEndOfConversation(BotHandler)
为会话 活动结束 注册活动事件处理程序。
function onEndOfConversation(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
此活动通常从技能发送到指示该特定子会话结束的技能调用方。
若要处理会话结束,请使用 onEndOfConversation 特定于类型的事件处理程序。
onEvent(BotHandler)
为针对每个传入事件活动发出的 事件 事件注册活动事件处理程序。
function onEvent(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
事件活动将来自客户端或通道的编程信息传达给机器人。 事件活动的含义由活动的 名称 属性定义,该属性在通道范围内有意义。 事件活动旨在同时传递交互式信息(如按钮单击)和非交互式信息(例如客户端自动更新嵌入式语音模型的通知)。
若要处理 tokens/response
事件事件,请使用 onTokenResponseEvent 子类型事件处理程序。 若要处理其他命名事件,请将逻辑添加到此处理程序。
onInstallationUpdate(BotHandler)
为 installationupdate 活动注册活动事件处理程序。
function onInstallationUpdate(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
若要处理 InstallationUpdate 事件,请使用 onInstallationUpdate 类型特定的事件处理程序。
onInstallationUpdateAdd(BotHandler)
为 installationupdate 添加 活动注册活动事件处理程序。
function onInstallationUpdateAdd(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。 若要处理 InstallationUpdateAdd 事件,请使用 onInstallationUpdateAdd 类型特定的事件处理程序。
onInstallationUpdateRemove(BotHandler)
注册 安装删除 活动的活动事件处理程序。
function onInstallationUpdateRemove(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
若要处理 InstallationUpdateRemove 事件,请使用 onInstallationUpdateRemove 类型特定的事件处理程序。
onMembersAdded(BotHandler)
为添加 事件 成员注册活动事件处理程序,该事件针对包含添加到会话的成员的任何传入会话更新活动发出。
function onMembersAdded(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
活动的 membersAdded 属性包含添加到聊天(可以包括机器人)的成员。
若要一般处理会话更新事件,请使用 onConversationUpdate 类型特定的事件处理程序。
onMembersRemoved(BotHandler)
为删除 事件 成员注册活动事件处理程序,该事件针对包含从会话中删除的成员的任何传入会话更新活动发出。
function onMembersRemoved(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
活动的 membersRemoved 属性包含从聊天中删除的成员,其中包括机器人。
若要一般处理会话更新事件,请使用 onConversationUpdate 类型特定的事件处理程序。
onMessage(BotHandler)
为每个传入消息活动活动发出 消息 事件注册活动事件处理程序。
function onMessage(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
消息活动表示要显示在对话界面中的内容,并且可以包含文本、语音、交互式卡片和二进制或未知附件。
并非所有消息活动都包含文本,活动的 文本 属性可以 null
或 undefined
。
onMessageReaction(BotHandler)
为每个传入消息反应活动发出 消息反应 事件注册活动事件处理程序。
function onMessageReaction(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
消息反应活动表示对话中现有邮件活动的社交交互。 原始活动由消息反应活动的 replyToId 属性引用。 来自 属性的 表示反应的来源,例如对消息做出反应的用户。
若要处理在会话中的消息中添加或删除反应时,请使用 onReactionsAdded,并 onReactionsRemoved 子类型事件处理程序。
onReactionsAdded(BotHandler)
为添加 事件 反应注册活动事件处理程序,该事件针对描述添加到消息中的响应的任何传入消息反应活动发出。
function onReactionsAdded(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
活动的 reactionsAdded 属性包括添加的一个或多个反应。
若要一般处理消息反应事件,请使用 onMessageReaction 类型特定的事件处理程序。
onReactionsRemoved(BotHandler)
为已删除 事件 反应注册活动事件处理程序,该事件针对描述从消息中删除的反应的任何传入消息反应活动发出。
function onReactionsRemoved(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
活动的 reactionsRemoved 属性包括一个或多个已删除的反应。
若要一般处理消息反应事件,请使用 onMessageReaction 类型特定的事件处理程序。
onTokenResponseEvent(BotHandler)
为任何传入 tokens/response
事件活动发出的 令牌响应 事件注册活动事件处理程序。 这些是 OAuth 身份验证流的一部分生成的。
function onTokenResponseEvent(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
活动 值 属性包含用户令牌。
如果机器人在对话框中使用 OAuthPrompt 处理身份验证,则对话需要接收此活动才能完成身份验证流。
若要一般处理其他命名事件和事件事件,请使用 onEvent 特定于类型的事件处理程序。
onTurn(BotHandler)
为 轮次 事件注册活动事件处理程序,无论类型如何,都会针对每个传入活动发出。
function onTurn(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
onTyping(BotHandler)
为键入 活动 注册活动事件处理程序。
function onTyping(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
若要处理 Type 事件,请使用 onTyping 类型特定的事件处理程序。
onUnrecognizedActivityType(BotHandler)
为 无法识别的活动类型 事件注册活动事件处理程序,该事件针对传入活动发出,其类型为 ActivityHandler 不提供事件处理程序。
function onUnrecognizedActivityType(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
ActivityHandler
不为 Bot Framework 活动架构中定义的所有活动类型定义事件。 此外,通道和自定义适配器还可以创建具有架构中类型 活动。 当活动处理程序收到此类事件时,它会发出无法识别的活动类型事件。
活动 类型 属性包含活动类型。
run(TurnContext)
调用以启动事件排放过程。
function run(context: TurnContext): Promise<void>
参数
- context
- TurnContext
当前轮次的上下文对象。
返回
Promise<void>
注解
通常,你将提供此方法作为函数处理程序,适配器在适配器预先处理接收活动并通过任何中间件路由后调用以执行机器人的逻辑。
例如:
server.post('/api/messages', (req, res) => {
adapter.processActivity(req, res, async (context) => {
// Route to bot's activity logic.
await bot.run(context);
});
});
另请参阅