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.