Jednostki i typy działań
DOTYCZY: ZESTAW SDK w wersji 4
Jednostki są częścią działania i zawierają dodatkowe informacje o działaniu lub konwersacji.
Uwaga
Różne części zestawu SDK definiują oddzielne klasy jednostek lub elementy.
Jednostki
Właściwość entities komunikatu to tablica obiektów schema.org typu open-end, co umożliwia wymianę typowych metadanych kontekstowych między kanałem a botem.
Wzmianka o jednostkach
Wiele kanałów obsługuje możliwość "wzmianki" przez bota lub użytkownika w kontekście konwersacji. Aby wspomnieć o użytkowniku w komunikacie, wypełnij właściwość jednostki komunikatu obiektem wzmianki . Obiekt wzmianki zawiera następujące właściwości:
Właściwości | Opis |
---|---|
Type | Typ jednostki ("wzmianka") |
Wymienione | Obiekt konta kanału wskazujący, który użytkownik został wymieniony |
Tekst | Tekst we właściwości activity.text , która reprezentuje samą wzmiankę (może być pusta lub ma wartość null) |
W tym przykładzie kodu pokazano, jak dodać jednostkę wzmianki do kolekcji jednostek.
var entity = new Entity();
entity.SetAs(new Mention()
{
Text = "@johndoe",
Mentioned = new ChannelAccount()
{
Name = "John Doe",
Id = "UV341235"
}
});
entities.Add(entity);
Napiwek
Podczas próby określenia intencji użytkownika bot może chcieć zignorować tę część komunikatu, w której został wymieniony. Wywołaj metodę GetMentions
i oceń Mention
obiekty zwrócone w odpowiedzi.
Umieszczanie obiektów
Informacje dotyczące lokalizacji można przekazać w komunikacie, wypełniając właściwość jednostek komunikatu obiektem Place lub obiektem GeoCoordinates .
Obiekt place zawiera następujące właściwości:
Właściwości | Opis |
---|---|
Type | Typ jednostki ("Place") |
Adres | Opis lub obiekt adresu pocztowego (przyszłość) |
Lokalizacja geograficzna | Geokoordyny |
HasMap | Adres URL do obiektu mapy lub mapy (w przyszłości) |
Nazwisko | Nazwa miejsca |
Obiekt geoKoordinates zawiera następujące właściwości:
Właściwości | Opis |
---|---|
Type | Typ jednostki ("GeoKoordinates") |
Nazwisko | Nazwa miejsca |
Długość | Długość geograficzna lokalizacji (WGS 84) |
Szerokość geograficzna | Szerokość geograficzna lokalizacji (WGS 84) |
Elevation | Podniesienie wysokości lokalizacji (WGS 84) |
W tym przykładzie kodu pokazano, jak dodać jednostkę place do kolekcji jednostek:
var entity = new Entity();
entity.SetAs(new Place()
{
Geo = new GeoCoordinates()
{
Latitude = 32.4141,
Longitude = 43.1123123,
}
});
entities.Add(entity);
Korzystanie z jednostek
Aby korzystać z jednostek, użyj słowa kluczowego dynamic
lub silnie typizowanej klasy.
W tym przykładzie kodu pokazano, jak używać dynamic
słowa kluczowego do przetwarzania jednostki we Entities
właściwości komunikatu:
if (entity.Type == "Place")
{
dynamic place = entity.Properties;
if (place.geo.latitude > 34)
// do something
}
W tym przykładzie kodu pokazano, jak używać silnie typizowanej klasy do przetwarzania jednostki we Entities
właściwości komunikatu:
if (entity.Type == "Place")
{
Place place = entity.GetAs<Place>();
GeoCoordinates geo = place.Geo.ToObject<GeoCoordinates>();
if (geo.Latitude > 34)
// do something
}
Typy działań
Działania mogą być z kilku różnych typów obok najbardziej typowego komunikatu. Wyjaśnienia i dalsze szczegóły dotyczące różnych typów działań można znaleźć w schemacie działania platformy Bot Framework.