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.