Questo articolo si basa su quanto appreso in Come funzionano i bot e conversazioni guidate dagli eventi. Prima di continuare, è consigliabile acquisire familiarità con questi articoli.
La differenza principale nei bot sviluppati per Microsoft Teams è nel modo in cui vengono gestite le attività. Il gestore attività di Teams deriva dal gestore attività e elabora i tipi di attività specifici di Teams prima di elaborare tipi di attività più generali.
Nota
Gli SDK JavaScript, C# e Python di Bot Framework continueranno a essere supportati, ma Java SDK verrà ritirato con il supporto finale a lungo termine che termina a novembre 2023.
I bot esistenti creati con Java SDK continueranno a funzionare.
Per creare un bot per Teams, derivare il bot dalla classe del gestore attività di Teams. Quando un bot riceve un'attività, instrada l'attività attraverso vari gestori di attività. Il gestore di base iniziale è il gestore dei turni e indirizza l'attività a un gestore in base al tipo di attività. Il gestore dei turni chiama il gestore progettato per gestire il tipo specifico di attività ricevuto. La classe del gestore attività di Teams deriva dalla classe del gestore attività . Oltre ai tipi di attività che il gestore attività può elaborare, la classe del gestore attività di Teams include gestori aggiuntivi per le attività specifiche di Teams.
Un bot che deriva dal gestore attività di Teams è simile a un bot che deriva direttamente dalla classe del gestore attività.
Tuttavia, Teams include informazioni aggiuntive nelle conversationUpdate attività e invia attività specifiche invoke di event Teams.
Quando il gestore attività di Teams-bot riceve un'attività di messaggio, il gestore dei turni instrada l'attività del messaggio in arrivo al OnMessageActivityAsync gestore, in modo analogo a come farebbe un bot basato su un gestore attività. Tuttavia, quando il bot di Teams riceve un'attività di aggiornamento della conversazione, la versione di Teams del OnConversationUpdateActivityAsync gestore elabora l'attività.
Non esiste alcuna implementazione di base per la maggior parte dei gestori di attività specifici di Teams. È necessario eseguire l'override di questi gestori e fornire la logica appropriata per il bot.
Quando il gestore attività di Teams-bot riceve un'attività di messaggio, il gestore dei turni instrada l'attività del messaggio in arrivo al onMessage gestore, in modo analogo a come farebbe un bot basato su un gestore attività. Tuttavia, quando il bot di Teams riceve un'attività di aggiornamento della conversazione, la versione di Teams del dispatchConversationUpdateActivity gestore elabora l'attività.
Non esiste alcuna implementazione di base per la maggior parte dei gestori di attività specifici di Teams. È necessario eseguire l'override di questi gestori e fornire la logica appropriata per il bot.
Quando si esegue l'override di questi gestori di attività specifici di Teams, definire la logica del bot, quindi assicurarsi di chiamare next() alla fine. next()Chiamando , assicurarsi che venga eseguito il gestore successivo.
Quando il gestore attività di Teams-bot riceve un'attività di messaggio, il gestore dei turni instrada l'attività del messaggio in arrivo al onMessageActivity gestore, in modo analogo a come farebbe un bot basato su un gestore attività. Tuttavia, quando il bot di Teams riceve un'attività di aggiornamento della conversazione, la versione di Teams del onConversationUpdateActivity gestore elabora l'attività.
Non esiste alcuna implementazione di base per la maggior parte dei gestori di attività specifici di Teams. È necessario eseguire l'override di questi gestori e fornire la logica appropriata per il bot.
Quando il gestore attività di Teams-bot riceve un'attività di messaggio, il gestore dei turni instrada l'attività del messaggio in arrivo al on_message_activity gestore, in modo analogo a come farebbe un bot basato su un gestore attività. Tuttavia, quando il bot di Teams riceve un'attività di aggiornamento della conversazione, la versione di Teams del on_conversation_update_activity gestore elabora l'attività.
Non esiste alcuna implementazione di base per la maggior parte dei gestori di attività specifici di Teams. È necessario eseguire l'override di questi gestori e fornire la logica appropriata per il bot.
Tutti i gestori attività descritti nella sezione relativa alla gestione delle attività delle conversazioni guidate dagli eventi che usano un gestore attività continueranno a funzionare come fanno con un bot non Teams, ad eccezione della gestione dei membri aggiunti e rimossi, queste attività saranno diverse nel contesto di un team, in cui il nuovo membro viene aggiunto al team anziché a un thread di messaggio. Per altre informazioni, vedere Attività di aggiornamento delle conversazioni di Teams.
Per implementare la logica per questi gestori di attività specifici di Teams, è necessario eseguire l'override dei metodi nel bot.
Logica del bot di Teams
La logica del bot elabora le attività in ingresso da uno o più canali di bot e genera in risposta le attività in uscita. Questo comportamento è valido anche per il bot derivato dalla classe del gestore di attività di Teams, la quale verifica prima le attività di Teams e quindi passa tutte le altre attività al gestore di attività di Bot Framework.
Attività di aggiornamento dell'installazione di Teams
Aggiungere un gestore per l'evento di aggiornamento dell'installazione per consentire al bot:
Inviare un messaggio introduttivo quando viene installato in un thread di conversazione.
Pulire i dati utente e thread quando vengono disinstallati da un thread.
Per altre informazioni, vedere Evento di aggiornamento dell'installazione nella documentazione di Teams.
Attività di aggiornamento della conversazione in Teams
La tabella seguente elenca gli eventi di Teams che generano un'attività di aggiornamento della conversazione in un bot.
L'articolo sugli eventi di aggiornamento della conversazione di Microsoft Teams descrive come usare ognuno di questi eventi.
Di seguito è riportato un elenco di tutti i gestori attività di Teams chiamati dal OnConversationUpdateActivityAsync metodo del gestore attività di Teams .
EventType
Gestore
Condizione
Documentazione di Teams
channelCreated
OnTeamsChannelCreatedAsync
Inviato ogni volta che viene creato un nuovo canale in un team in cui viene installato il bot.
Per impostazione predefinita, chiama il ActivityHandler.OnMembersAddedAsync metodo . Inviato la prima volta che il bot viene aggiunto a una conversazione e ogni volta che un nuovo utente viene aggiunto a un team o a una chat di gruppo in cui è installato il bot.
Per impostazione predefinita, chiama il ActivityHandler.OnMembersRemovedAsync metodo . Inviato se il bot viene rimosso da un team e ogni volta che un utente viene rimosso da un team di cui il bot è membro.
Gli sviluppatori possono gestire le attività di aggiornamento delle conversazioni inviate da Microsoft Teams tramite due metodi:
Per passare un callback, usare metodi che iniziano con e terminano con Eventon(ad esempio, il onTeamsMembersAddedEvent metodo ).
Quando si crea una classe derivata, eseguire l'override dei metodi che iniziano con on e non terminano con Event (ad esempio, il onTeamsMembersAdded metodo ).
Gli sviluppatori devono usare solo una di queste opzioni: 1 o 2 e non entrambe per la stessa attività. Ciò significa che gli sviluppatori devono passare un callback al onTeamsMembersAddedEvent metodo o eseguire l'override del onTeamsMembersAdded metodo in una classe derivata e non eseguire entrambe le operazioni.
Metodi per la registrazione di un callback
Di seguito è riportato un elenco di tutti gli emettitori di attività di Teams chiamati dal dispatchConversationUpdateActivity metodo del gestore attività di Teams .
EventType
Metodo di registrazione
Condizione
Documentazione di Teams
channelCreated
onTeamsChannelCreatedEvent
Inviato ogni volta che viene creato un nuovo canale in un team in cui viene installato il bot.
Inviato la prima volta che il bot viene aggiunto a una conversazione e ogni volta che un nuovo utente viene aggiunto a un team o a una chat di gruppo in cui è installato il bot.
Di seguito è riportato un elenco di tutti i gestori attività di Teams che possono essere sottoposti a override per gestire le attività di aggiornamento delle conversazioni di Teams.
EventType
Gestore
Condizione
Documentazione di Teams
channelCreated
onTeamsChannelCreated
Inviato ogni volta che viene creato un nuovo canale in un team in cui viene installato il bot.
Per impostazione predefinita, chiama il ActivityHandler.onMembersAdded metodo . Inviato la prima volta che il bot viene aggiunto a una conversazione e ogni volta che un nuovo utente viene aggiunto a un team o a una chat di gruppo in cui è installato il bot.
Per impostazione predefinita, chiama il ActivityHandler.onMembersRemoved metodo . Inviato se il bot viene rimosso da un team e ogni volta che un utente viene rimosso da un team di cui il bot è membro.
Per impostazione predefinita, chiama il ActivityHandler.onMembersAdded metodo . Inviato la prima volta che il bot viene aggiunto a una conversazione e ogni volta che un nuovo utente viene aggiunto a un team o a una chat di gruppo in cui è installato il bot.
Per impostazione predefinita, chiama il ActivityHandler.onMembersRemoved metodo . Inviato se il bot viene rimosso da un team e ogni volta che un utente viene rimosso da un team di cui il bot è membro.
Di seguito è riportato un elenco di tutti i gestori attività di Teams chiamati dal on_conversation_update_activity metodo del gestore attività di Teams .
EventType
Gestore
Condizione
Documentazione di Teams
channelCreated
on_teams_channel_created
Inviato ogni volta che viene creato un nuovo canale in un team in cui viene installato il bot.
Per impostazione predefinita, chiama il metodo della classe on_members_added_activity base. Inviato la prima volta che il bot viene aggiunto a una conversazione e ogni volta che un nuovo utente viene aggiunto a un team o a una chat di gruppo in cui è installato il bot.
Per impostazione predefinita, chiama il metodo della classe on_members_removed_activity base. Inviato se il bot viene rimosso da un team e ogni volta che un utente viene rimosso da un team di cui il bot è membro.
La tabella seguente elenca le attività di evento specifiche di Teams inviate da Teams a un bot.
Le attività degli eventi elencate sono per i bot di conversazione in Teams.
Si tratta dei gestori di attività dell'evento specifici di Teams chiamati dal OnEventActivityAsyncgestore attività di Teams .
Tipi di evento
Gestore
Descrizione
application/vnd.microsoft.meetingEnd
OnTeamsMeetingEndAsync
Il bot è associato a una riunione appena terminata.
application/vnd.microsoft.meetingStart
OnTeamsMeetingStartAsync
Il bot è associato a una riunione appena avviata.
Si tratta dei gestori di attività dell'evento specifici di Teams chiamati dal onEventActivitygestore attività di Teams .
Tipi di evento
Gestore
Descrizione
application/vnd.microsoft.meetingEnd
onTeamsMeetingEnd
Il bot è associato a una riunione appena terminata.
application/vnd.microsoft.meetingStart
onTeamsMeetingStart
Il bot è associato a una riunione appena avviata.
Si tratta dei gestori di attività dell'evento specifici di Teams chiamati dal onEventActivitygestore attività di Teams .
Tipi di evento
Gestore
Descrizione
application/vnd.microsoft.meetingEnd
onTeamsMeetingEnd
Il bot è associato a una riunione appena terminata.
application/vnd.microsoft.meetingStart
onTeamsMeetingStart
Il bot è associato a una riunione appena avviata.
Si tratta dei gestori di attività dell'evento specifici di Teams chiamati dal on_event_activitygestore attività di Teams .
Tipi di evento
Gestore
Descrizione
application/vnd.microsoft.meetingEnd
on_teams_meeting_end_event
Il bot è associato a una riunione appena terminata.
application/vnd.microsoft.meetingStart
on_teams_meeting_start_event
Il bot è associato a una riunione appena avviata.
Attività di richiamo di Teams
La tabella seguente elenca le attività invoke specifiche di Teams inviate da Teams a un bot.
Le attività invoke elencate sono per i bot di conversazione in Teams. Bot Framework SDK supporta anche attività di richiamo specifiche per le estensioni di messaggistica. Per altre informazioni, vedere l'articolo Informazioni sulle estensioni per la messaggistica.
Nota
La documentazione della piattaforma Microsoft Teams e la libreria client JavaScript di Teams (TeamsJS) fanno riferimento ai moduli attività come dialoghi modali. Per altre informazioni, vedere Finestre di dialogo.