Entitäten und Aktivitätstypen

GILT FÜR: SDK v4

Entitäten sind Teil einer Aktivität und stellen zusätzliche Informationen über die Aktivität oder Konversation bereit.

Hinweis

In verschiedenen Teilen des SDK werden separate Entitätsklassen oder Elemente definiert.

Entitäten

Die Eigenschaft entities einer Nachricht ist ein Array von schema.org-Objekten mit unbestimmtem Ende, was den Austausch von allgemeinen kontextbezogenen Metadaten zwischen dem Kanal und dem Bot ermöglicht.

Erwähnungsentitäten

Viele Kanäle unterstützen die Option, dass ein Bot oder Benutzer eine Person im Kontext einer Konversation „erwähnt“. Füllen Sie die Entitätseigenschaft der Nachricht mit einem Mention-Objekt, um einen Benutzer in einer Nachricht zu erwähnen. Das Mention-Objekt enthält die folgenden Eigenschaften:

Eigenschaft Beschreibung des Dataflows
Typ Typ der Entität („Erwähnung“)
Mentioned ChannelAccount-Objekt, das angibt, welcher Benutzer erwähnt wurde
Text Text in der Eigenschaft activity.text, der die Erwähnung selbst darstellt (kann leer oder Null sein)

In diesem Codebeispiel wird veranschaulicht, wie eine Mention-Entität der Entitätensammlung hinzugefügt wird.

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

Tipp

Beim Versuch, die Absicht des Benutzers zu ermitteln, sollte der Bot möglicherweise den Abschnitt der Nachricht ignorieren, in dem er erwähnt wird. Rufen Sie die GetMentions-Methode auf, und werten Sie die Mention-Objekte in der zurückgegeben Antwort aus.

Place-Objekte

Standortbezogene Informationen können in einer Nachricht übermittelt werden, indem Sie die Entitätseigenschaft der Nachricht entweder mit einem Place-Objekt oder einem GeoCoordinates-Objekt füllen.

Das Place-Objekt enthält die folgenden Eigenschaften:

Eigenschaft Beschreibung des Dataflows
Typ Typ der Entität („Ort“)
Adresse Beschreibung oder Postanschrift-Objekt (Zukunft)
Geografisch GeoCoordinates
HasMap URL zu einer Karte oder einem Map-Objekt (in der Zukunft)
Name Name des Orts

Das GeoCoordinates-Objekt enthält die folgenden Eigenschaften:

Eigenschaft Beschreibung des Dataflows
Typ Typ der Entität („GeoKoordinaten“)
Name Name des Orts
Längengrad Längengrad des Standorts (WGS 84)
Breite Breitengrad des Standorts (WGS 84)
Elevation Höhe des Standorts (WGS 84)

In diesem Codebeispiel wird veranschaulicht, wie eine Place-Entität der Entitätensammlung hinzugefügt wird:

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

Nutzen von Entitäten

Verwenden Sie entweder das dynamic-Schlüsselwort oder stark typisierte Klassen, um Entitäten zu nutzen.

In diesem Codebeispiel wird veranschaulicht, wie Sie das dynamic-Schlüsselwort zum Verarbeiten einer Entität in der Entities-Eigenschaft einer Nachricht verwenden:

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

In diesem Codebeispiel wird veranschaulicht, wie Sie eine stark typisierte Klasse zum Verarbeiten einer Entität in der Entities-Eigenschaft einer Nachricht verwenden:

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

Aktivitätstypen

Abgesehen vom gängigsten Typ Message können Aktivitäten viele verschiedene Typen aufweisen. Erläuterungen und weitere Informationen zu verschiedenen Aktivitätstypen finden Sie im Bot Framework-Aktivitätsschema.