Entiteter och aktivitetstyper
GÄLLER FÖR: SDK v4
Entiteter är en del av en aktivitet och ger ytterligare information om aktiviteten eller konversationen.
Kommentar
Olika delar av SDK definierar separata entitetsklasser eller element.
Entiteter
Entitetsegenskapen för ett meddelande är en matris med öppna schema.org objekt, vilket möjliggör utbyte av vanliga kontextuella metadata mellan kanalen och roboten.
Nämna entiteter
Många kanaler stöder möjligheten för en robot eller användare att "nämna" någon inom ramen för en konversation. Om du vill nämna en användare i ett meddelande fyller du i meddelandets entitetsegenskap med ett omnämnandeobjekt . Omnämnandeobjektet innehåller följande egenskaper:
Property | Beskrivning |
---|---|
Type | Typ av entitet ("omnämnande") |
Nämnde | Kanalkontoobjekt som anger vilken användare som nämndes |
Text | Text i egenskapen activity.text som representerar själva omnämnandet (kan vara tomt eller null) |
Det här kodexemplet visar hur du lägger till en nämnande entitet i entitetssamlingen.
var entity = new Entity();
entity.SetAs(new Mention()
{
Text = "@johndoe",
Mentioned = new ChannelAccount()
{
Name = "John Doe",
Id = "UV341235"
}
});
entities.Add(entity);
Dricks
När du försöker fastställa användarens avsikt kanske roboten vill ignorera den del av meddelandet där den nämns. GetMentions
Anropa metoden och utvärdera de objekt som Mention
returneras i svaret.
Placera objekt
Platsrelaterad information kan förmedlas i ett meddelande genom att fylla i meddelandets entitetsegenskap med antingen ett Place-objekt eller ett GeoCoordinates-objekt .
Platsobjektet innehåller följande egenskaper:
Property | Beskrivning |
---|---|
Type | Typ av entitet ("Plats") |
Address | Beskrivning eller postadressobjekt (framtiden) |
Geografiskt | GeoKoordinater |
HasMap | URL till en karta eller ett kartobjekt (framtiden) |
Name | Namnet på platsen |
GeoCoordinates-objektet innehåller följande egenskaper:
Property | Beskrivning |
---|---|
Type | Typ av entitet ("GeoCoordinates") |
Name | Namnet på platsen |
Longitud | Longitud för platsen (WGS 84) |
Latitud | Latitud för platsen (WGS 84) |
Elevation | Platshöjning (WGS 84) |
Det här kodexemplet visar hur du lägger till en platsentitet i entitetssamlingen:
var entity = new Entity();
entity.SetAs(new Place()
{
Geo = new GeoCoordinates()
{
Latitude = 32.4141,
Longitude = 43.1123123,
}
});
entities.Add(entity);
Använda entiteter
Om du vill använda entiteter använder du antingen nyckelordet dynamic
eller starkt typade klasser.
Det här kodexemplet visar hur du använder nyckelordet dynamic
för att bearbeta en entitet i Entities
egenskapen för ett meddelande:
if (entity.Type == "Place")
{
dynamic place = entity.Properties;
if (place.geo.latitude > 34)
// do something
}
Det här kodexemplet visar hur du använder en starkt skriven klass för att bearbeta en entitet inom Entities
egenskapen för ett meddelande:
if (entity.Type == "Place")
{
Place place = entity.GetAs<Place>();
GeoCoordinates geo = place.Geo.ToObject<GeoCoordinates>();
if (geo.Latitude > 34)
// do something
}
Aktivitetstyper
Aktiviteter kan ha flera olika typer efter det vanligaste meddelandet. Förklaringar och ytterligare information om olika aktivitetstyper finns i Bot Framework-aktivitetsschemat.