Den främsta skillnaden i robotar som utvecklats för Microsoft Teams är hur aktiviteter hanteras. Teams-aktivitetshanteraren härleds från aktivitetshanteraren och bearbetar Teams-specifika aktivitetstyper innan du bearbetar mer allmänna aktivitetstyper.
Kommentar
Bot Framework JavaScript-, C#- och Python-SDK:erna fortsätter att stödjas, men Java SDK dras tillbaka med slutligt långsiktigt stöd som slutar i november 2023.
Befintliga robotar som skapats med Java SDK fortsätter att fungera.
Om du vill skapa en robot för Teams härleder du din robot från teams-aktivitetshanterarklassen. När en sådan robot tar emot en aktivitet dirigeras aktiviteten via olika aktivitetshanterare. Den initiala bashanteraren är turhanteraren och dirigerar aktiviteten till en hanterare baserat på aktivitetens typ. Turhanteraren anropar den hanterare som är utformad för att hantera den specifika typ av aktivitet som togs emot. Teams aktivitetshanterarklass härleds från aktivitetshanterarklassen. Förutom de aktivitetstyper som aktivitetshanteraren kan bearbeta innehåller teams-aktivitetshanterarklassen ytterligare hanterare för Teams-specifika aktiviteter.
En robot som härleds från Teams aktivitetshanterare liknar en robot som härleds direkt från aktivitetshanterarklassen.
Teams innehåller dock ytterligare information i conversationUpdate aktiviteter och skickar Teams-specifika invoke aktiviteter.event
När din Teams-aktivitetshanterare–robot tar emot en meddelandeaktivitet dirigerar dess turhanterare den inkommande meddelandeaktiviteten till OnMessageActivityAsync hanteraren, ungefär som en aktivitetshanterarbaserad robot. Men när teams-roboten tar emot en konversationsuppdateringsaktivitet bearbetar Teams-versionen av OnConversationUpdateActivityAsync hanteraren aktiviteten.
Det finns ingen basimplementering för de flesta Teams-specifika aktivitetshanterare. Du måste åsidosätta dessa hanterare och tillhandahålla lämplig logik för din robot.
När din Teams-aktivitetshanterare–robot tar emot en meddelandeaktivitet dirigerar dess turhanterare den inkommande meddelandeaktiviteten till onMessage hanteraren, ungefär som en aktivitetshanterarbaserad robot. Men när teams-roboten tar emot en konversationsuppdateringsaktivitet bearbetar Teams-versionen av dispatchConversationUpdateActivity hanteraren aktiviteten.
Det finns ingen basimplementering för de flesta Teams-specifika aktivitetshanterare. Du måste åsidosätta dessa hanterare och tillhandahålla lämplig logik för din robot.
När du åsidosätter dessa Teams-specifika aktivitetshanterare definierar du robotlogik och anropar next() sedan i slutet. Genom att anropa next()kontrollerar du att nästa hanterare körs.
När din Teams-aktivitetshanterare–robot tar emot en meddelandeaktivitet dirigerar dess turhanterare den inkommande meddelandeaktiviteten till onMessageActivity hanteraren, ungefär som en aktivitetshanterarbaserad robot. Men när teams-roboten tar emot en konversationsuppdateringsaktivitet bearbetar Teams-versionen av onConversationUpdateActivity hanteraren aktiviteten.
Det finns ingen basimplementering för de flesta Teams-specifika aktivitetshanterare. Du måste åsidosätta dessa hanterare och tillhandahålla lämplig logik för din robot.
När din Teams-aktivitetshanterare–robot tar emot en meddelandeaktivitet dirigerar dess turhanterare den inkommande meddelandeaktiviteten till on_message_activity hanteraren, ungefär som en aktivitetshanterarbaserad robot. Men när teams-roboten tar emot en konversationsuppdateringsaktivitet bearbetar Teams-versionen av on_conversation_update_activity hanteraren aktiviteten.
Det finns ingen basimplementering för de flesta Teams-specifika aktivitetshanterare. Du måste åsidosätta dessa hanterare och tillhandahålla lämplig logik för din robot.
Alla aktivitetshanterare som beskrivs i avsnittet om aktivitetshantering i artikeln Händelsedrivna konversationer med hjälp av en aktivitetshanterare fortsätter att fungera som de gör med en robot som inte är en Teams-robot, förutom att hantera de medlemmar som lagts till och tagits bort aktiviteter. Dessa aktiviteter kommer att skilja sig åt i ett team, där den nya medlemmen läggs till i teamet i motsats till en meddelandetråd. Mer information finns i Teams konversationsuppdateringsaktiviteter.
Om du vill implementera din logik för dessa Teams-specifika aktivitetshanterare åsidosätter du metoder i roboten.
Teams-botlogik
Robotlogiken bearbetar inkommande aktiviteter från en eller flera av dina robotkanaler och genererar utgående aktiviteter som svar. Detta gäller fortfarande för roboten som härleds från teams-aktivitetshanterarklassen, som först söker efter Teams-aktiviteter och sedan skickar alla andra aktiviteter till Bot Frameworks aktivitetshanterare.
Installationsuppdateringsaktiviteter för Teams
Lägg till en hanterare för installationsuppdateringshändelsen så att roboten kan:
Skicka ett introduktionsmeddelande när det är installerat på en konversationstråd.
Rensa användar- och tråddata när de avinstalleras från en tråd.
I följande tabell visas de Teams-händelser som genererar en konversationsuppdateringsaktivitet i en robot.
Artikeln om uppdateringshändelser för Microsoft Teams-konversation beskriver hur du använder var och en av dessa händelser.
Anropar ActivityHandler.OnMembersAddedAsync som standard metoden. Skickas första gången roboten läggs till i en konversation och varje gång en ny användare läggs till i ett team eller gruppchatt som roboten är installerad i.
Anropar ActivityHandler.OnMembersRemovedAsync som standard metoden. Skickas om roboten tas bort från ett team och varje gång en användare tas bort från ett team som roboten är medlem i.
Utvecklare kan hantera konversationsuppdateringsaktiviteter som skickas från Microsoft Teams via två metoder:
Om du vill skicka in ett återanrop använder du metoder som börjar med onoch slutar med Event (till exempel onTeamsMembersAddedEvent metoden).
När du skapar en härledd klass åsidosätter du metoder som börjar med on och inte slutar med Event (till exempel onTeamsMembersAdded metoden).
Utvecklare bör bara använda ett av följande alternativ: antingen 1 eller 2, och inte båda för samma aktivitet. Det innebär att utvecklare antingen bör skicka ett återanrop till onTeamsMembersAddedEvent metoden eller åsidosätta onTeamsMembersAdded metoden i en härledd klass och inte göra båda.
Metoder för att registrera ett återanrop
Nedan visas en lista över alla Teams-aktivitetsutfärdare som anropas från dispatchConversationUpdateActivity metoden för Teams-aktivitetshanteraren.
EventType
Registreringsmetod
Villkor
Dokumentation om Teams
kanalSkapad
onTeamsChannelCreatedEvent
Skickas när en ny kanal skapas i ett team som roboten är installerad i.
Skickas första gången roboten läggs till i en konversation och varje gång en ny användare läggs till i ett team eller gruppchatt som roboten är installerad i.
Anropar ActivityHandler.onMembersAdded som standard metoden. Skickas första gången roboten läggs till i en konversation och varje gång en ny användare läggs till i ett team eller gruppchatt som roboten är installerad i.
Anropar ActivityHandler.onMembersRemoved som standard metoden. Skickas om roboten tas bort från ett team och varje gång en användare tas bort från ett team som roboten är medlem i.
Anropar ActivityHandler.onMembersAdded som standard metoden. Skickas första gången roboten läggs till i en konversation och varje gång en ny användare läggs till i ett team eller gruppchatt som roboten är installerad i.
Anropar ActivityHandler.onMembersRemoved som standard metoden. Skickas om roboten tas bort från ett team och varje gång en användare tas bort från ett team som roboten är medlem i.
Anropar som standard basklassmetoden on_members_added_activity . Skickas första gången roboten läggs till i en konversation och varje gång en ny användare läggs till i ett team eller gruppchatt som roboten är installerad i.
Anropar som standard basklassmetoden on_members_removed_activity . Skickas om roboten tas bort från ett team och varje gång en användare tas bort från ett team som roboten är medlem i.
I följande tabell visas de Teams-specifika händelseaktiviteter som Teams skickar till en robot.
Händelseaktiviteterna som visas är för konversationsrobotar i Teams.
Det här är de Teams-specifika händelseaktivitetshanterare som anropas från OnEventActivityAsyncTeams-aktivitetshanteraren .
Händelsetyper
Hanterare
beskrivning
application/vnd.microsoft.meetingEnd
OnTeamsMeetingEndAsync
Roboten är associerad med ett möte som just avslutats.
application/vnd.microsoft.meetingStart
OnTeamsMeetingStartAsync
Roboten är associerad med ett möte som precis har startat.
Det här är de Teams-specifika händelseaktivitetshanterare som anropas från onEventActivityTeams-aktivitetshanteraren .
Händelsetyper
Hanterare
beskrivning
application/vnd.microsoft.meetingEnd
onTeamsMeetingEnd
Roboten är associerad med ett möte som just avslutats.
application/vnd.microsoft.meetingStart
onTeamsMeetingStart
Roboten är associerad med ett möte som precis har startat.
Det här är de Teams-specifika händelseaktivitetshanterare som anropas från onEventActivityTeams-aktivitetshanteraren .
Händelsetyper
Hanterare
beskrivning
application/vnd.microsoft.meetingEnd
onTeamsMeetingEnd
Roboten är associerad med ett möte som just avslutats.
application/vnd.microsoft.meetingStart
onTeamsMeetingStart
Roboten är associerad med ett möte som precis har startat.
Det här är de Teams-specifika händelseaktivitetshanterare som anropas från on_event_activityTeams-aktivitetshanteraren .
Händelsetyper
Hanterare
beskrivning
application/vnd.microsoft.meetingEnd
on_teams_meeting_end_event
Roboten är associerad med ett möte som just avslutats.
application/vnd.microsoft.meetingStart
on_teams_meeting_start_event
Roboten är associerad med ett möte som precis har startat.
Teams anropar aktiviteter
I följande tabell visas de Teams-specifika anropande aktiviteter som Teams skickar till en robot.
De anropade aktiviteterna som anges är för konversationsrobotar i Teams. Bot Framework SDK stöder också anropar som är specifika för meddelandetillägg. Mer information finns i artikeln Teams What are messaging extensions (Teams What are messaging extensions ).
Kommentar
Dokumentation om Microsoft Teams-plattformen och Teams JavaScript-klientbibliotek (TeamsJS) refererar till aktivitetsmoduler som modala dialogrutor. Mer information finns i Dialogrutor .