Bot-Aktivitätenhandler

Dieses Dokument baut auf dem Artikel zur Funktionsweise von Bots in der Grundlegenden Bot Framework-Dokumentationauf. Der Hauptunterschied zwischen Bots, die für Microsoft Teams entwickelt wurden, und dem Core Bot Framework sind die Features, die in Teams bereitgestellt werden.

Um die Unterhaltungslogik für Ihren Bot zu organisieren, wird ein Aktivitätshandler verwendet. Aktivitäten werden mithilfe von Teams Aktivitätshandlern und Botlogik auf zwei Arten behandelt. Der Teams-Aktivitätshandler fügt Unterstützung für Microsoft Teams-spezifische Ereignisse und Interaktionen hinzu. Das Bot-Objekt enthält die unterhaltungsbezogene Logik oder Logik für eine Drehung und macht einen Turnhandler verfügbar, der die Methode ist, die eingehende Aktivitäten vom Botadapter akzeptieren kann.

Teams-Aktivitätshandler

Teams Aktivitätshandler wird vom Aktivitätshandler Microsoft Bot Framework abgeleitet. Es leitet alle Teams Aktivitäten weiter, bevor nicht Teams bestimmte Aktivitäten verarbeitet werden können.

Wenn ein Bot für Teams eine Aktivität empfängt, wird er an die Aktivitätshandler weitergeleitet. Alle Aktivitäten werden über einen Basishandler weitergeleitet, der als Turnhandler bezeichnet wird. Der Turnhandler ruft den erforderlichen Aktivitätshandler auf, um empfangene Aktivitäten zu verwalten. Der Teams Bot wird von TeamsActivityHandler der Klasse abgeleitet, die von der Klasse des Bot-Frameworks abgeleitet ActivityHandler wird.

Bots werden mithilfe des Bot Frameworks erstellt. Wenn die Bots eine Nachrichtenaktivität erhalten, erhält der Turnhandler eine Benachrichtigung über diese eingehende Aktivität. Der Turnhandler sendet dann die eingehende Aktivität an den OnMessageActivityAsync Aktivitätshandler. In Teams bleibt diese Funktionalität unverändert. Wenn der Bot eine Unterhaltungsaktualisierungsaktivität empfängt, empfängt der Turnhandler eine Benachrichtigung über diese eingehende Aktivität und sendet die eingehende Aktivität an OnConversationUpdateActivityAsync . Der Teams-Aktivitätshandler überprüft zuerst nach Teams bestimmten Ereignissen. Wenn keine Ereignisse gefunden werden, werden diese an den Aktivitätshandler des Bot-Frameworks übergeben.

In der Teams Aktivitätshandlerklasse gibt es zwei primäre Teams Aktivitätshandler OnConversationUpdateActivityAsync und OnInvokeActivityAsync . OnConversationUpdateActivityAsyncleitet alle Unterhaltungsaktualisierungsaktivitäten weiter und OnInvokeActivityAsync leitet alle Teams Aufrufen von Aktivitäten weiter.

Um Ihre Logik für Teams bestimmte Aktivitätshandler zu implementieren, müssen Sie die Methoden in Ihrem Bot außer Kraft setzen, wie im Abschnitt zur Botlogik dargestellt. Es gibt keine Basisimplementierung für diese Handler. Daher müssen Sie die gewünschte Logik in der Außerkraftsetzung hinzufügen.

Botlogik

Die Botlogik verarbeitet eingehende Aktivitäten von einem oder mehreren Ihrer Botkanäle und generiert als Reaktion ausgehende Aktivitäten. Dies gilt weiterhin für Bots, die von der Teams Aktivitätshandlerklasse abgeleitet sind, die zuerst nach Teams Aktivitäten sucht. Nach der Überprüfung auf Teams Aktivitäten werden alle anderen Aktivitäten an den Aktivitätshandler des Bot-Frameworks übergeben.

Core Bot Framework-Handler

Hinweis

Mit Ausnahme der hinzugefügten und entfernten Aktivitäten von Mitgliedern funktionieren alle in diesem Abschnitt beschriebenen Aktivitätshandler weiterhin wie bei einem Nicht-Teams-Bot.

Aktivitätshandler unterscheiden sich im Kontext eines Teams, in dem dem Team ein neues Mitglied anstelle eines Nachrichtenthreads hinzugefügt wird.

Die Liste der definierten Handler ActivityHandler umfasst Folgendes:

Ereignis Handler Beschreibung
Empfangener Aktivitätstyp OnTurnAsync Diese Methode ruft basierend auf dem Typ der empfangenen Aktivität einen der anderen Handler auf.
Empfangene Nachrichtenaktivität OnMessageActivityAsync Diese Methode kann überschrieben werden, um eine Aktivität zu Message behandeln.
Empfangene Unterhaltungsaktualisierungsaktivität OnConversationUpdateActivityAsync Diese Methode ruft einen Handler auf, wenn andere Mitglieder als der Bot der Unterhaltung für eine Aktivität beigetreten sind oder diese verlassen ConversationUpdate haben.
Nicht-Bot-Mitglieder sind der Unterhaltung beigetreten OnMembersAddedAsync Diese Methode kann überschrieben werden, um Mitglieder zu verarbeiten, die an einer Unterhaltung teilnehmen.
Nicht-Bot-Mitglieder haben die Unterhaltung verlassen OnMembersRemovedAsync Diese Methode kann überschrieben werden, um Elemente zu behandeln, die eine Unterhaltung verlassen.
Empfangene Ereignisaktivität OnEventActivityAsync Diese Methode ruft einen für den Ereignistyp spezifischen Handler für eine Event Aktivität auf.
Empfangene Token-Antwort-Ereignisaktivität OnTokenResponseEventAsync Diese Methode kann überschrieben werden, um Tokenantwortereignisse zu behandeln.
Empfangene Ereignisaktivität ohne Tokenantwort OnEventAsync Diese Methode kann überschrieben werden, um andere Ereignistypen zu behandeln.
Anderer empfangener Aktivitätstyp OnUnrecognizedActivityTypeAsync Diese Methode kann überschrieben werden, um alle Aktivitätstypen zu behandeln, die andernfalls nicht behandelt werden.

Teams bestimmten Aktivitätshandlern

Die TeamsActivityHandler Liste der Handler im Core Bot Framework-Handlerabschnitt wird erweitert, um Folgendes einzuschließen:

Ereignis Handler Beschreibung
channelCreated OnTeamsChannelCreatedAsync Diese Methode kann überschrieben werden, um einen zu erstellenden Teams Kanal zu verarbeiten. Weitere Informationen finden Sie im Kanal, der in Unterhaltungsaktualisierungsereignissen erstellt wurde.
channelDeleted OnTeamsChannelDeletedAsync Diese Methode kann überschrieben werden, um einen Teams zu löschenden Kanal zu verarbeiten. Weitere Informationen finden Sie unter "In Unterhaltungsaktualisierungsereignissen gelöschter Kanal".
channelRenamed OnTeamsChannelRenamedAsync Diese Methode kann überschrieben werden, um einen Teams Kanal zu verarbeiten, der umbenannt wird. Weitere Informationen finden Sie unter "Kanal umbenannt" in Unterhaltungsaktualisierungsereignissen.
teamRenamed OnTeamsTeamRenamedAsync return Task.CompletedTask;Diese Methode kann überschrieben werden, um ein Teams Team zu verarbeiten, das umbenannt wird. Weitere Informationen finden Sie unter team renamed in conversation update events.
MembersAdded OnTeamsMembersAddedAsync Diese Methode ruft die OnMembersAddedAsync Methode in ActivityHandler auf. Die Methode kann überschrieben werden, um Mitglieder zu behandeln, die einem Team beitreten. Weitere Informationen finden Sie unter Teammitglieder, die in Unterhaltungsaktualisierungsereignissen hinzugefügt wurden.
MembersRemoved OnTeamsMembersRemovedAsync Diese Methode ruft die OnMembersRemovedAsync Methode in ActivityHandler auf. Die Methode kann überschrieben werden, um Mitglieder zu behandeln, die ein Team verlassen. Weitere Informationen finden Sie unter Teammitglieder, die in Aktualisierungsereignissenfür Unterhaltungen entfernt wurden.

Teams Aufrufen von Aktivitäten

Die Liste der vom OnInvokeActivityAsync Teams-Aktivitätshandler aufgerufenen Teams Aktivitätshandler umfasst Folgendes:

Aufrufen von Typen Handler Beschreibung
CardAction.Invoke OnTeamsCardActionInvokeAsync Diese Methode wird aufgerufen, wenn eine Aktivität zum Aufrufen einer Kartenaktion vom Connector empfangen wird.
fileConsent/invoke OnTeamsFileConsentAcceptAsync Diese Methode wird aufgerufen, wenn eine Dateigenehmigungskarte vom Benutzer akzeptiert wird.
fileConsent/invoke OnTeamsFileConsentAsync Diese Methode wird aufgerufen, wenn eine Dateigenehmigungskartenaktivität vom Connector empfangen wird.
fileConsent/invoke OnTeamsFileConsentDeclineAsync Diese Methode wird aufgerufen, wenn eine Dateigenehmigungskarte vom Benutzer abgelehnt wird.
actionableMessage/executeAction OnTeamsO365ConnectorCardActionAsync Diese Methode wird aufgerufen, wenn eine Aktionsaktivität der O365-Connectorkarte vom Connector empfangen wird.
signin/verifyState OnTeamsSigninVerifyStateAsync Diese Methode wird aufgerufen, wenn eine signIn-Überprüfung der Statusaktivität vom Connector empfangen wird.
task/fetch OnTeamsTaskModuleFetchAsync Diese Methode kann in einer abgeleiteten Klasse überschrieben werden, um Logik bereitzustellen, wenn ein Aufgabenmodul abgerufen wird.
task/submit OnTeamsTaskModuleSubmitAsync Diese Methode kann in einer abgeleiteten Klasse überschrieben werden, um Beim Senden eines Aufgabenmoduls Logik bereitzustellen.

Die in diesem Abschnitt aufgeführten Aufrufaktivitäten gelten für Unterhaltungsbots in Teams. Das Bot Framework SDK unterstützt auch Aufrufaktivitäten, die für Messaging-Erweiterungen spezifisch sind. Weitere Informationen finden Sie unter "Messaging-Erweiterungen".


Nachdem Sie sich nun mit Bot-Aktivitätshandlern vertraut machen, können wir sehen, wie sich Bots je nach Unterhaltung und den empfangenen oder gesendeten Nachrichten unterschiedlich verhalten.

Nächster Schritt