Combinare bot e schede

Importante

Questo articolo si basa su Bot Framework SDK v3. Se stai cercando la documentazione corrente versione 4.6 o successiva dell'SDK, vedi la sezione Bot conversazionali .

Bot e schede lavorano insieme e spesso vengono combinati in un unico servizio back-end. Questa sezione descrive le procedure consigliate e i modelli comuni per l'uso combinato di schede e bot.

Associazione delle identità degli utenti tra bot e schede

Ad esempio: supponiamo che la tua applicazione a schede utilizzi un sistema ID proprietario per proteggere il suo contenuto. Supponiamo di avere anche un bot in grado di interagire con l'utente. In genere, si desidera mostrare contenuto nella scheda specifico per l'utente che lo visualizza. Il problema è che l'ID utente nel sistema è probabilmente diverso dall'ID utente di Microsoft Teams. Quindi, come si associano queste due identità? In generale, l'approccio consigliato consiste nell'accedere l'utente con il bot usando lo stesso sistema di identità usato per fornire l'autenticazione per il contenuto della scheda. È possibile implementarla tramite l'azione di accesso, che in genere connette l'utente tramite un flusso OAuth.

Questo flusso funziona in modo ottimale se il provider di identità implementa il protocollo OAuth 2.0. È quindi possibile associare l'ID utente di Teams alle credenziali dell'utente dal proprio servizio di identità.

Screenshot che mostra le identità associate.

Si vogliono usare le schede per mostrare più contenuto che può essere contenuto contenuto contenuto in una scheda o per fornire un modo per completare complesse attività di compilazione di moduli usando l'area di disegno della scheda. Ad esempio, si consideri di passare l'utente alla scheda quando l'utente seleziona la scheda dal bot. A tal fine, è necessario codificare il messaggio del bot in modo che includa un URL di collegamento diretto , tramite markup o come destinazione dell'azione openUrl.

I collegamenti diretti si basano su un entityId, che è un valore opaco associato a un'entità univoca nel sistema. Quando la scheda viene creata, si memorizzano alcuni stati semplici. Ad esempio, un flag sul backend che indica che la scheda è stata creata nel canale. Quando il bot crea un messaggio, può avere come destinazione l'entityId associato a tale scheda.

Nota

Nelle chat personali, poiché le schede sono statiche e installate con l'app, è sempre possibile presumere la loro esistenza e quindi creare collegamenti profondi di conseguenza.

Invio di notifiche per gli aggiornamenti delle schede

Spesso si vuole inviare una notifica all'utente finale ogni volta che si verifica un aggiornamento o un'azione dell'utente in una scheda. Uno scenario di esempio è l'assegnazione di un'attività o di un ticket a un altro membro del team e quindi la notifica a tale membro del team.

Questo scenario può essere realizzato in due modi:

  1. Se vuoi inviare una notifica a un intero canale, il bot può pubblicare un messaggio nel canale in modo asincrono. Non c'è modo per un bot di creare in modo proattivo la conversazione della scheda se non è stata creata con la scheda.

  2. Se si vuole notificare l'azione solo al destinatario o alle parti interessate, il bot può inviare un messaggio di chat personale all'utente. È consigliabile verificare prima di tutto se esiste una conversazione personale tra il bot e l'utente. In caso contrario, puoi chiamare CreateConversation per avviare la chat personale.

In entrambi i casi, usare saggiamente le notifiche degli eventi e non inviare mai spam all'utente con aggiornamenti non necessari.

Vedere anche

Aggiungere guide pratiche all'app Microsoft Teams