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.