ActivityHandler class
机器人的事件发出活动处理程序。 扩展 ActivityHandlerBase。
- 扩展
注解
这提供了一个可扩展的类,用于以事件驱动的方式处理传入活动。 可以为每个事件类型注册一组任意处理程序。
若要为事件注册处理程序,请使用相应的 on 事件 方法。 如果为事件注册了多个处理程序,则它们将按照注册的顺序运行。
此对象在处理传入活动时发出一系列 事件 。 处理程序可以通过不调用延续函数来停止事件的传播。
事件类型 | 说明 |
---|---|
转动 | 首先为每个活动发出。 |
特定于类型 | 在针对任何子类型发出事件之前,为特定活动类型发出。 |
子类型 | 根据活动内容为某些专用事件发出。 |
对话框 | 作为最终活动处理事件发出。 |
例如:
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 add 活动注册活动事件处理程序。 |
on |
为 installationupdate remove 活动注册活动事件处理程序。 |
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 对象的引用。
注解
事件活动将编程信息从客户端或通道传达给机器人。 事件活动的含义由活动的 name 属性定义,该属性在通道范围内有意义。 事件活动设计用来输送交互信息(例如,按钮单击)和非交互信息(例如,关于客户端自动更新嵌入的语音模型的通知)。
若要处理 tokens/response
事件事件,请使用 onTokenResponseEvent 子类型事件处理程序。 若要处理其他命名事件,请将逻辑添加到此处理程序。
onInstallationUpdate(BotHandler)
为 installationupdate 活动注册活动事件处理程序。
function onInstallationUpdate(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
若要处理 InstallationUpdate 事件,请使用 onInstallationUpdate 类型特定的事件处理程序。
onInstallationUpdateAdd(BotHandler)
为 installationupdate add 活动注册活动事件处理程序。
function onInstallationUpdateAdd(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。 若要处理 InstallationUpdateAdd 事件,请使用 onInstallationUpdateAdd 类型特定的事件处理程序。
onInstallationUpdateRemove(BotHandler)
为 installationupdate remove 活动注册活动事件处理程序。
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 对象的引用。
注解
消息活动表示要显示在对话界面中的内容,可以包含文本、语音、交互式卡片以及二进制或未知附件。
并非所有邮件活动都包含文本,活动的 text 属性可以是 null
或 undefined
。
onMessageReaction(BotHandler)
注册 消息反应 事件的活动事件处理程序,为每个传入消息反应活动发出。
function onMessageReaction(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
消息回应活动表示在聊天内的现有消息活动上进行社交互动。 原始活动由消息反应活动的 replyToId 属性引用。 from 属性表示响应源,例如对消息做出反应的用户。
若要处理在会话中的消息中添加或删除反应时,请使用 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
事件活动发出的 tokens-response 事件注册活动事件处理程序。 这些是作为 OAuth 身份验证流的一部分生成的。
function onTokenResponseEvent(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
活动的 value 属性包含用户令牌。
如果机器人在对话中使用 OAuthPrompt 处理身份验证,则对话需要接收此活动才能完成身份验证流。
若要一般处理其他命名事件和事件,请使用 onEvent 类型特定的事件处理程序。
onTurn(BotHandler)
为 轮次 事件注册一个活动事件处理程序,该处理程序针对每个传入活动发出,而不考虑类型。
function onTurn(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
onTyping(BotHandler)
为 键入 活动注册活动事件处理程序。
function onTyping(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
若要处理 Typing 事件,请使用 onTyping 特定于类型的事件处理程序。
onUnrecognizedActivityType(BotHandler)
为 无法识别的活动类型 事件注册活动事件处理程序,该事件为具有 ActivityHandler 未提供事件处理程序的类型的传入活动发出。
function onUnrecognizedActivityType(handler: BotHandler): this
参数
- handler
- BotHandler
事件处理程序。
返回
this
对 ActivityHandler 对象的引用。
注解
ActivityHandler
不会为 Bot Framework 活动架构中定义的所有活动类型定义事件。 此外,通道和自定义适配器可以创建类型不在架构中的 活动 。 当活动处理程序收到此类事件时,它会发出无法识别的活动类型事件。
活动的 type 属性包含活动类型。
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);
});
});
另请参阅