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 |
註冊 安裝更新新增 活動的活動事件處理常式。 |
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)
註冊 安裝更新新增 活動的活動事件處理常式。
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 屬性所參考。 from屬性代表反應的來源,例如回應訊息的使用者。
若要在交談中新增或移除回應時處理回應,請使用 onReactionsAdded 和 onReactionsRemoved 子類型事件處理常式。
onReactionsAdded(BotHandler)
針對 加入之反應 的事件註冊活動事件處理常式,針對描述新增至訊息之反應的任何傳入訊息反應活動發出。
function onReactionsAdded(handler: BotHandler): this
參數
- handler
- BotHandler
事件處理常式。
傳回
this
ActivityHandler物件的參考。
備註
活動的 反應Added 屬性包含一或多個已加入的回應。
若要一般處理訊息反應事件,請使用 onMessageReaction 類型特定事件處理常式。
onReactionsRemoved(BotHandler)
針對 已移除之反應 的事件註冊活動事件處理常式,針對描述從訊息中移除之反應的任何傳入訊息反應活動發出。
function onReactionsRemoved(handler: BotHandler): this
參數
- handler
- BotHandler
事件處理常式。
傳回
this
ActivityHandler物件的參考。
備註
活動的 回應Removed 屬性包含一或多個已移除的回應。
若要一般處理訊息反應事件,請使用 onMessageReaction 類型特定事件處理常式。
onTokenResponseEvent(BotHandler)
註冊 權杖回應 事件的活動事件處理常式,針對任何傳入 tokens/response
事件活動發出。 這些會在 OAuth 驗證流程中產生。
function onTokenResponseEvent(handler: BotHandler): this
參數
- handler
- BotHandler
事件處理常式。
傳回
this
ActivityHandler物件的參考。
備註
活動的 value 屬性包含使用者權杖。
如果您的 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 活動架構中定義的所有活動類型定義事件。 此外,通道和自訂配接器可以建立類型不在架構中的 活動 。 當活動處理常式收到這類事件時,它會發出無法辨識的活動類型事件。
活動的 type 屬性包含活動類型。
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);
});
});
另請參閱