Dela via


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.