Funktionsweise von Microsoft Teams-Bots

GILT FÜR: SDK v4

Dieser Artikel baut auf den Erkenntnissen auf, die Sie in der Funktionsweise von Bots und ereignisgesteuerten Unterhaltungen gelernt haben. Sie sollten mit diesen Artikeln vertraut sein, bevor Sie fortfahren.

Der Hauptunterschied bei Bots, die für Microsoft Teams entwickelt wurden, besteht in der Verarbeitung von Aktivitäten. Der Teams-Aktivitätshandler wird vom Aktivitätshandler abgeleitet und verarbeitet teamsspezifische Aktivitätstypen, bevor allgemeinere Aktivitätstypen verarbeitet werden.

Hinweis

Die JavaScript-, C#- und Python-SDKs für Bot Framework werden weiterhin unterstützt, das Java-SDK wird jedoch eingestellt und der langfristige Support endet im November 2023.

Bestehende Bots, die mit dem Java SDK erstellt wurden, werden weiterhin funktionieren.

Wenn Sie einen neuen Bot erstellen möchten, sollten Sie den Einsatz von Power Virtual Agents in Betracht ziehen und sich über die Auswahl der richtigen Chatbot-Lösung informieren.

Weitere Informationen finden Sie unter Die Zukunft des Bot-Buildings.

Teams-Aktivitätshandler

Um einen Bot für Teams zu erstellen, leiten Sie Ihren Bot von der Teams-Aktivitätshandler-Klasse ab. Wenn ein solcher Bot eine Aktivität empfängt, leitet er die Aktivität über verschiedene Aktivitätshandler weiter. Der anfängliche Basishandler ist der Turnhandler und leitet die Aktivität basierend auf dem Aktivitätstyp an einen Handler weiter. Der Turnhandler ruft den Handler auf, der für die spezifische Art der empfangenen Aktivität vorgesehen ist. Die Teams-Aktivitätshandler-Klasse wird von der Aktivitätshandler-Klasse abgeleitet. Zusätzlich zu den Aktivitätstypen, die der Aktivitätshandler verarbeiten kann, enthält die Teams-Aktivitätshandlerklasse zusätzliche Handler für Teams-spezifische Aktivitäten.

Ein Bot, der vom Teams-Aktivitätshandler abgeleitet wird, ähnelt einem Bot, der direkt von der Aktivitätshandlerklasse abgeleitet wird. Teams enthält jedoch zusätzliche Informationen in conversationUpdate-Aktivitäten und sendet Teams-spezifische invoke- und event-Aktivitäten.

Wenn Ihr Teams-Aktivitätshandler-Bot eine Nachrichtenaktivität empfängt, leitet der Turnhandler die eingehende Nachrichtenaktivität an seinen OnMessageActivityAsync-Handler weiter, ähnlich wie ein aktivitätshandlerbasierter Bot. Wenn Ihr Teams-Bot jedoch eine Unterhaltungsaktualisierungsaktivität empfängt, verarbeitet die Teams-Version des OnConversationUpdateActivityAsync-Handlers die Aktivität.

Es gibt keine Basisimplementierung für die meisten der Teams-spezifischen Aktivitätshandler. Sie müssen diese Handler überschreiben und entsprechende Logik für Ihren Bot bereitstellen.

Alle Aktivitätshandler, die im Abschnitt zur Aktivitätsbehandlung des Artikels Ereignisgesteuerte Unterhaltungen mit einem Aktivitätshandler beschrieben sind, funktionieren weiterhin wie für einen nicht für Teams bestimmten Bot – mit Ausnahme der Aktivitäten zum Hinzufügen und Entfernen von Mitgliedern, die sich im Kontext eines Teams unterscheiden, da das neue Mitglied dem Team hinzugefügt wird und nicht in einem Nachrichten-Thread. Weitere Informationen finden Sie unter Aktualisierungsaktivitäten für Teams-Unterhaltungen.

Um Ihre Logik für diese teamspezifischen Aktivitätshandler zu implementieren, werden Sie Methoden in Ihrem Bot außer Kraft setzen.

Teams-Botlogik

Die Botlogik verarbeitet eingehende Aktivitäten aus 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 werden. Zuerst wird eine Überprüfung auf Teams-Aktivitäten durchgeführt, und anschließend werden alle anderen Aktivitäten an den Aktivitätshandler von Bot Framework übergeben.

Aktualisierungsaktivitäten von Teams bei der Installation

Fügen Sie einen Handler für das Installationsupdate-Ereignis hinzu, damit Ihr Bot:

  • eine einleitende Nachricht senden kann, wenn er in einem Konversations-Thread installiert wird.
  • die Benutzer- und Thread-Daten bereinigt, wenn er von einem Thread deinstalliert wird.

Weitere Informationen finden Sie im Installationsupdate-Ereignis in den Teams-Dokumenten.

Teams-Aktivitäten für die Konversationsaktualisierung

In den folgenden Tabellenlisten sind die Teams-Ereignisse aufgeführt, die eine Unterhaltungsaktualisierungs-Aktivität in einem Bot generieren. Im Artikel zu den Ereignissen der Konversationsaktualisierung von Microsoft Teams wird beschrieben, wie Sie diese einzelnen Ereignisse verwenden.

Unten ist eine Liste mit allen Teams-Aktivitätshandlern angegeben, die über den OnConversationUpdateActivityAsync-Methoden der Teams-Aktivitätshandler aufgerufen werden.

EventType Handler Bedingung Teams-Dokumentation
channelCreated OnTeamsChannelCreatedAsync Wird gesendet, wenn ein neuer Kanal in einem Team erstellt wird, in dem Ihr Bot installiert ist. Kanal erstellt.
channelDeleted OnTeamsChannelDeletedAsync Wird gesendet, wenn ein Kanal in einem Team gelöscht wird, in dem Ihr Bot installiert ist. Kanal gelöscht.
channelRenamed OnTeamsChannelRenamedAsync Wird gesendet, wenn ein Kanal in einem Team umbenannt wird, in dem Ihr Bot installiert ist. Kanal umbenannt.
channelRestored OnTeamsChannelRestoredAsync Wird gesendet, wenn ein Kanal, der zuvor gelöscht wurde, in einem Team wiederhergestellt wird, in dem Ihr Bot bereits installiert ist. Kanal wiederhergestellt.
membersAdded OnTeamsMembersAddedAsync Ruft standardmäßig die ActivityHandler.OnMembersAddedAsync-Methode auf. Wird gesendet, wenn Ihr Bot zum ersten Mal zu einer Unterhaltung hinzugefügt wird und jedes Mal, wenn ein neuer Benutzer zu einem Team- oder Gruppen-Chat hinzugefügt wird, in dem Ihr Bot installiert ist. Hinzugefügte Teammitglieder.
membersRemoved OnTeamsMembersRemovedAsync Ruft standardmäßig die ActivityHandler.OnMembersRemovedAsync-Methode auf. Wird gesendet, wenn Ihr Bot aus einem Team entfernt wird und jedes Mal, wenn ein Benutzer aus einem Team entfernt wird, in dem Ihr Bot Mitglied ist. Teammitglieder wurden entfernt.
teamArchived OnTeamsTeamArchivedAsync Wird gesendet, wenn das Team, in dem Ihr Bot installiert ist, archiviert wird. Team archiviert.
teamDeleted OnTeamsTeamDeletedAsync Wird gesendet, wenn das Team, in dem sich Ihr Bot befindet, gelöscht wurde. Team wurde gelöscht.
teamRenamed OnTeamsTeamRenamedAsync Wird gesendet, wenn das Team, in dem sich Ihr Bot befindet, umbenannt wurde. Team umbenannt.
teamRestored OnTeamsTeamRestoredAsync Wird gesendet, wenn ein zuvor gelöschtes Team, in dem sich Ihr Bot befindet, wiederhergestellt wird. Team wurde wiederhergestellt.
teamUnarchived OnTeamsTeamUnarchivedAsync Wird gesendet, wenn das Team, in dem Ihr Bot installiert ist, nicht archiviert wird. Team nicht archiviert.

Teams-Ereignisaktivitäten

In der folgenden Tabelle sind die Teams-spezifischen Ereignisaktivitäten aufgeführt, die Teams an einen Bot sendet. Die oben aufgeführten Ereignisaktivitäten sind für Konversationsbots in Teams bestimmt.

Dies sind die teamsspezifischen Ereignisaktivitätshandler, die vom OnEventActivityAsyncTeams-Aktivitätshandler aufgerufen werden.

Ereignistypen Handler Beschreibung
application/vnd.microsoft.meetingEnd OnTeamsMeetingEndAsync Der Bot ist einer soeben beendeten Besprechung zugeordnet.
application/vnd.microsoft.meetingStart OnTeamsMeetingStartAsync Der Bot ist einer soeben gestarteten Besprechung zugeordnet.

Teams-Aufrufaktivitäten

In der folgenden Tabelle sind die Teams-spezifischen Aufrufaktivitäten aufgeführt, die Teams an einen Bot sendet. Die aufgeführten Aufrufaktivitäten sind für Konversationsbots in Teams bestimmt. Das Bot Framework SDK unterstützt auch spezifische Aufrufe für Messaging-Erweiterungen. Weitere Informationen finden Sie im Artikel Was sind Messaging-Erweiterungen? von Teams.

Hinweis

Die Dokumentation zur Microsoft-Teams-Plattform und die Teams-JavaScript-Clientbibliothek (TeamsJS) beziehen sich auf Aufgabenmodule als modale Dialoge. Weitere Informationen finden Sie unter Dialoge.

Hier ist eine Liste mit allen Teams-Aktivitätshandlern angegeben, die über den OnInvokeActivityAsyncTeams-Aktivitätshandler aufgerufen werden:

Aufruftypen Handler Beschreibung
actionableMessage/executeAction OnTeamsO365ConnectorCardActionAsync Teams-Kartenaktion für O365-Connector
CardAction.Invoke OnTeamsCardActionInvokeAsync Teams-Kartenaktionsaufruf
fileConsent/invoke OnTeamsFileConsentAcceptAsync Akzeptierung der Zustimmung zur Teams-Datei
fileConsent/invoke OnTeamsFileConsentAsync Zustimmung zur Teams-Datei
fileConsent/invoke OnTeamsFileConsentDeclineAsync Zustimmung zur Teams-Datei
signin/verifyState OnTeamsSigninVerifyStateAsync Überprüfung des Zustands der Teams-Anmeldung
task/fetch OnTeamsTaskModuleFetchAsync Abruf des Teams-Aufgabenmoduls
task/submit OnTeamsTaskModuleSubmitAsync Übermittlung des Teams-Aufgabenmoduls

Nächste Schritte

Informationen zum Entwickeln von Teams-Bots finden Sie in der Dokumentation für Microsoft Teams-Entwickler.