Affichages spécifiques à l’utilisateur

Plus tôt, si les cartes adaptatives étaient envoyées dans une conversation Teams, tous les utilisateurs verraient exactement le même contenu carte. Avec l’introduction du modèle Actions universelles et refresh des cartes adaptatives, les développeurs de bots peuvent désormais fournir des vues spécifiques des cartes adaptatives aux utilisateurs. La même carte adaptative peut désormais s’actualiser sur une carte adaptative spécifique à l’utilisateur. La carte adaptative fournit des scénarios puissants tels que les approbations, les contrôles du créateur de sondage, la création de tickets, la gestion des incidents et les cartes de gestion de projet.

Remarque

  • L’affichage spécifique à l’utilisateur est pris en charge pour les cartes adaptatives envoyées par un bot et dépend des actions universelles.
  • Au maximum 60 utilisateurs différents peuvent voir une version différente du carte avec des informations ou des actions supplémentaires.

Par exemple, Megan, inspecteur de sécurité chez Contoso, souhaite créer un incident et l’affecter à Alex. Megan veut également que tous les membres de l’équipe soient au courant de l’incident. Megan utilise l’extension de message de rapport d’incident Contoso avec des actions universelles pour les cartes adaptatives.

Affichages spécifiques à l’utilisateur pour les cartes adaptatives

Le code suivant fournit un exemple de cartes adaptatives :

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "originator":"c9b4352b-a76b-43b9-88ff-80edddaa243b",
  "version": "1.4",
  "refresh": {
    "action": {
      "type": "Action.Execute",
      "title": "Refresh",
      "verb": "editOrResolveView",
      "data": {
            "refresh info": "<refresh info>"
      }
    },
    "userIds": ["<Megan's user MRI>", "<Alex's user MRI>"]
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "Incident 1234"
    },
    {
      "type": "TextBlock",
      "text": "Incident details: <incident details>"
    }
  ]
}

Pour envoyer des cartes adaptatives, actualisez les vues spécifiques à l’utilisateur et appelez les demandes au bot :

  1. Lorsque Megan crée un incident, le bot envoie la carte adaptative ou le carte commun avec les détails de l’incident dans la conversation Teams.
  2. À présent, cette carte s’actualise automatiquement vers l’affichage spécifique de l’utilisateur pour Megan et Alex. Les IRM utilisateur d’Alex et de Megan sont ajoutées dans userIds la propriété de refresh la propriété de la carte adaptative JSON. Le carte reste le même pour les autres utilisateurs de la conversation.
  3. Pour Megan, l’actualisation automatique déclenche une demande d’appel adaptiveCard/action au bot. Le bot peut retourner un créateur d’incident carte avec Edit le bouton en réponse à cette demande d’appel.
  4. De même pour Alex, l’actualisation automatique déclenche une autre adaptiveCard/action demande d’appel au bot. Le bot peut retourner un bouton carte Resolve propriétaire de l’incident en réponse à cette demande d’appel.

Appeler la demande envoyée du client Teams au bot

Le code suivant fournit un exemple de demande d’appel envoyée par alex et le client Teams de Megan au bot :

{ 
  "type": "invoke",
  "name": "adaptiveCard/action",

  // ... other properties omitted for brevity

  "value": { 
    "action": { 
      "type": "Action.Execute", 
      "id": "", 
      "verb": "editOrResolveView",
      "data": { 
            "refresh info": "<refresh info>"
      } 
    },
    "trigger": "automatic" 
  }
}

adaptiveCard/action invoke response carte

Le code suivant fournit un exemple de réponse adaptiveCard/action invoke carte pour Megan :

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "originator":"c9b4352b-a76b-43b9-88ff-80edddaa243b",
  "version": "1.4",
  "refresh": {
    "action": {
      "type": "Action.Execute",
      "title": "Refresh",
      "verb": "editOrResolveView"
    },
    "userIds": ["<Megan's user MRI>", "<Alex's user MRI>"]
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "Incident 1234"
    },
    {
      "type": "TextBlock",
      "text": "Incident details: <incident details>"
    }
  ],
  "actions": [
    {
      "type": "Action.Execute",
      "title": "Edit",
      "verb": "edit",
      "data": {
            "additional info": "<additional info>",
            ...
      }
    }
  ]
}

adaptiveCard/action invoke response carte for Alex

Le code suivant fournit un exemple de réponse adaptiveCard/action invoke carte pour Alex :

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "originator":"c9b4352b-a76b-43b9-88ff-80edddaa243b",
  "version": "1.4",
  "refresh": {
    "action": {
      "type": "Action.Execute",
      "title": "Refresh",
      "verb": "editOrResolveView"
    },
    "userIds": ["<Megan's user MRI>", "<Alex's user MRI>"]
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "Incident 1234"
    },
    {
      "type": "TextBlock",
      "text": "Incident details: <incident details>"
    }
  ],
  "actions": [
    {
      "type": "Action.Execute",
      "title": "Resolve",
      "verb": "resolve",
      "data": {
            "additional info": "<additional info>",
            ...
      }
    }
  ]
}

Appeler la réponse pour retourner des cartes adaptatives

Le code suivant fournit un exemple de réponse d’appel pour retourner des cartes adaptatives :

string cardJson = "<adaptive card json>";
var card = JsonConvert.DeserializeObject(cardJson);

var adaptiveCardResponse = JObject.FromObject(new
 {
    statusCode = 200,
    type = "application/vnd.microsoft.adaptive.card",
    value = card
 });

La liste suivante fournit des instructions de conception carte pour les vues spécifiques à l’utilisateur :

  • Comportement d’actualisation : vous pouvez créer un maximum de 60 vues spécifiques à l’utilisateur pour un carte particulier envoyé à une conversation en spécifiant leur userIds dans la Refresh propriété .

    • Si le userIds champ n’est pas spécifié dans la propriété , le Refresh client Teams peut déclencher automatiquement l’actualisation pour tous les utilisateurs lorsqu’il y a moins de 60 membres dans la conversation.

    • Pour que les utilisateurs déclenchent manuellement carte actualisation, ils peuvent sélectionner Actualiser dans le menu des options de message. Cela se produit pour tous les utilisateurs lorsqu’il y a moins de 60 membres dans une conversation, ou pour l’ensemble d’utilisateurs non spécifiés dans la userIds liste lorsqu’il y a tous ou moins de 60 utilisateurs dans une conversation.

  • Base carte : le bot envoie le message, qui s’incorpore avec la version de base du carte. Tous les membres de la conversation peuvent afficher la même chose. Le bot extrait ultérieurement la carte spécifique de l’utilisateur via l’actualisation pour les utilisateurs spécifiés dans la userIds section .

  • Délai d’actualisation : le client Teams déclenche une actualisation de deux manières, soit par le biais de l’option Actualiser , soit en sélectionnant Exécuter. L’actualisation se déclenche uniquement si le carte du dernier appel date de plus d’une minute. Vous pouvez contrôler le comportement d’actualisation en ajoutant un horodatage au conteneur de données et en le vérifiant avant d’envoyer le carte actualisé.

  • Pour les vues spécifiques à l’utilisateur, le client Teams stocke 50 cartes mises en cache les plus récentes par utilisateur. Lorsqu’une nouvelle carte nécessite une mise en cache, le magasin supprime le carte le plus ancien en fonction de la date de la dernière lecture et le remplace par la dernière carte. Il n’existe aucun processus pour restaurer les cartes supprimées après une certaine période. L’utilisateur peut également effacer le cache Teams pour supprimer des cartes du magasin.

  • Une mise à jour de message peut être utilisée pour mettre à jour le carte de base et actualiser simultanément la carte spécifique de l’utilisateur. L’ouverture de la conversation ou du canal actualise également la carte pour les utilisateurs pour 2000.

  • Pour les scénarios avec des groupes plus importants où les utilisateurs basculent vers une vue sur l’action, qui nécessite des mises à jour dynamiques pour les répondeurs, vous pouvez continuer à ajouter jusqu’à 60 utilisateurs à la userIds liste. Vous pouvez supprimer le premier répondeur de la liste lorsque le 61e utilisateur répond. Pour les utilisateurs qui sont supprimés de la userIds liste, vous pouvez fournir une actualisation manuelle pour obtenir le dernier résultat.

  • Envoyez une invite aux utilisateurs pour obtenir une vue spécifique de l’utilisateur, où ils ne voient qu’une vue particulière du carte ou certaines actions.

Remarque

La carte spécifique de l’utilisateur retournée par le bot est envoyée uniquement au client spécifique qui l’a demandée. Par exemple, si un utilisateur bascule vers un autre client, par exemple du bureau au mobile, un autre événement d’appel est déclenché pour récupérer le carte actualisé.

Exemple de code

Exemple de nom Description .NET Node.js Manifeste
Flux de travail séquentiels Cartes adaptatives Cet exemple illustre l’implémentation des flux de travail séquentiels, des vues spécifiques à l’utilisateur et des cartes adaptatives actuelles dans les bots. View View View

Voir aussi