ActivityHandler class
Bot 的事件發出活動處理程式。 擴充 ActivityHandlerBase。
- Extends
備註
這會提供可延伸類別,以事件驅動方式處理傳入活動。 您可以為每個事件類型註冊一組任意的處理程式。
若要註冊事件的處理程式,請在事件 方法上使用對應的。 如果為事件註冊多個處理程式,則會依註冊的順序執行它們。
此物件會在處理傳入活動時發出一系列 事件。 處理程式可以藉由不呼叫接續函式來停止事件傳播。
事件類型 | 描述 |
---|---|
轉 | 針對每個活動先發出。 |
類型特定 | 針對特定活動類型發出,再針對任何子類型發出事件。 |
子類型 | 根據活動內容,針對特定特製化事件發出。 |
對話 | 發出為最終活動處理事件。 |
例如:
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 |
註冊 安裝更新 活動的活動事件處理程式。 |
on |
註冊 安裝的活動事件處理程式update 新增 活動。 |
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 對象的參考。
備註
事件活動會將程式設計資訊從用戶端或通道傳達給 Bot。 事件活動的意義是由活動 名稱 屬性所定義,此屬性在通道範圍內有意義。 事件活動的設計訴求是同時攜帶互動式資訊(例如按鈕點選)和非互動式資訊(例如客戶端自動更新內嵌語音模型的通知)。
若要處理 tokens/response
事件事件,請使用 onTokenResponseEvent 子類型事件處理程式。 若要處理其他具名事件,請將邏輯新增至這個處理程式。
onInstallationUpdate(BotHandler)
註冊 安裝更新 活動的活動事件處理程式。
function onInstallationUpdate(handler: BotHandler): this
參數
- handler
- BotHandler
事件處理程式。
傳回
this
ActivityHandler 對象的參考。
備註
若要處理 InstallationUpdate 事件,請使用 onInstallationUpdate 類型特定的事件處理程式。
onInstallationUpdateAdd(BotHandler)
註冊 安裝的活動事件處理程式update 新增 活動。
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 屬性包含新增至交談的成員,其中可包含 Bot。
若要處理一般交談更新事件,請使用 onConversationUpdate 類型特定的事件處理程式。
onMembersRemoved(BotHandler)
為已移除 事件 成員註冊活動事件處理程式,此事件會針對包含從交談中移除的成員的任何傳入交談更新活動發出。
function onMembersRemoved(handler: BotHandler): this
參數
- handler
- BotHandler
事件處理程式。
傳回
this
ActivityHandler 對象的參考。
備註
活動的 membersRemoved 屬性包含從交談中移除的成員,其中包含 Bot。
若要處理一般交談更新事件,請使用 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 對象的參考。
備註
活動的 反應新增 屬性包含一或多個已新增的反應。
若要處理一般訊息反應事件,請使用 onMessageReaction 類型特定的事件處理程式。
onReactionsRemoved(BotHandler)
為已移除 事件 回應註冊活動事件處理程式,該事件會針對描述從訊息中移除之回應的任何傳入訊息反應活動發出。
function onReactionsRemoved(handler: BotHandler): this
參數
- handler
- BotHandler
事件處理程式。
傳回
this
ActivityHandler 對象的參考。
備註
活動的 reactionsRemoved 屬性包含一或多個已移除的反應。
若要處理一般訊息反應事件,請使用 onMessageReaction 類型特定的事件處理程式。
onTokenResponseEvent(BotHandler)
針對任何傳入 tokens/response
事件活動活動發出之 token-response 事件,註冊活動事件處理程式。 這些會在 OAuth 驗證流程中產生。
function onTokenResponseEvent(handler: BotHandler): this
參數
- handler
- BotHandler
事件處理程式。
傳回
this
ActivityHandler 對象的參考。
備註
活動 值 屬性包含使用者令牌。
如果您的 Bot 使用對話方塊內的 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>
備註
一般而言,您會提供這個方法做為函式處理程式,讓配接器在接收的活動由配接器預先處理並透過任何中間件路由傳送之後呼叫來執行 Bot 的邏輯。
例如:
server.post('/api/messages', (req, res) => {
adapter.processActivity(req, res, async (context) => {
// Route to bot's activity logic.
await bot.run(context);
});
});
另請參閱