Partager via


Entités et types d’activités

S’APPLIQUE À : SDK v4

Les entités font partie d’une activité et fournissent des informations supplémentaires sur l’activité ou la conversation.

Remarque

Les différentes parties du kit de développement logiciel (SDK) définissent des classes d'entités ou des éléments distincts.

Entités

La propriété entités d’un message est un tableau d’objets schema.org, de durée indéterminée, permettant l’échange de métadonnées contextuelles communes entre le canal et le bot.

Mentionner des entités

De nombreux canaux permettent à un utilisateur ou un bot de « mentionner » une personne dans le cadre d’une conversation. Pour mentionner un utilisateur dans un message, remplissez la propriété Entities du message avec un objet mention. L’objet mention contient ces propriétés :

Propriété Description
Type Type de l’entité (« mention »)
Mentionné Objet de compte de canal indiquant l’utilisateur qui a été mentionné
Texte Texte de la propriété activity.text représentant la mention (peut être nul ou vide)

Cet exemple de code montre comment ajouter une entité mention à la collection d’entités.

var entity = new Entity();
entity.SetAs(new Mention()
{
    Text = "@johndoe",
    Mentioned = new ChannelAccount()
    {
        Name = "John Doe",
        Id = "UV341235"
    }
});
entities.Add(entity);

Conseil

Lorsque vous tentez de déterminer l’intention de l’utilisateur, le bot peut ignorer la partie du message dans laquelle cette intention est mentionnée. Appelez la méthode GetMentions et évaluez les objets Mention retournés dans la réponse.

Placer des objets

Les informations liées à l’emplacement peuvent être transmises au sein d’un message en remplissant la propriété des entités du message à l’aide d’un objet Place ou GeoCoordinates.

L’objet Place contient les propriétés suivantes :

Propriété Description
Type Type de l’entité (« Place »)
Adresse Objet de description ou d’adresse postale (à venir)
Géo GeoCoordinates
HasMap URL vers une carte ou un objet de carte (à venir)
Nom Nom du lieu

L’objet geoCoordinates contient ces propriétés :

Propriété Description
Type Type de l’entité (« GeoCoordinates »)
Nom Nom du lieu
Longitude Longitude de l’emplacement (WGS 84)
Latitude Latitude de l’emplacement (WGS 84)
Elevation Élévation de l’emplacement (WGS 84)

Cet exemple de code montre comment ajouter une entité place à la collection d’entités :

var entity = new Entity();
entity.SetAs(new Place()
{
    Geo = new GeoCoordinates()
    {
        Latitude = 32.4141,
        Longitude = 43.1123123,
    }
});
entities.Add(entity);

Consommer des entités

Pour consommer des entités, utilisez le mot clé dynamic ou des classes fortement typées.

Cet exemple de code montre comment utiliser le mot clé dynamic pour traiter une entité dans la propriété Entities d’un message :

if (entity.Type == "Place")
{
    dynamic place = entity.Properties;
    if (place.geo.latitude > 34)
        // do something
}

Cet exemple de code montre comment utiliser une classe fortement typée pour traiter une entité dans la propriété Entities d’un message :

if (entity.Type == "Place")
{
    Place place = entity.GetAs<Place>();
    GeoCoordinates geo = place.Geo.ToObject<GeoCoordinates>();
    if (geo.Latitude > 34)
        // do something
}

Types d’activités

Les activités peuvent être de différents types, au-delà du message le plus courant. Vous trouverez plus d’informations et des explications sur différents types d’activités dans le schéma d’activité Bot Framework.