Varlıklar ve etkinlik türleri

ŞUNLAR IÇIN GEÇERLIDIR: SDK v4

Varlıklar etkinliğin bir parçasıdır ve etkinlik veya konuşma hakkında ek bilgi sağlar.

Dekont

SDK'nın farklı bölümleri ayrı varlık sınıfları veya öğeleri tanımlar.

Varlıklar

İletinin varlıklar özelliği, kanal ve bot arasında ortak bağlamsal meta verilerin değişimine olanak tanıyan açık uçlu schema.org nesneleri dizisidir.

Bahsetme varlıkları

Birçok kanal, botun veya kullanıcının konuşma bağlamında birinden "bahsetmesini" destekler. İletideki bir kullanıcıdan bahsetmek için iletinin entities özelliğini bir bahsetme nesnesiyle doldurun. Bahsetme nesnesi şu özellikleri içerir:

Özellik Açıklama
Type Varlığın türü ("bahsetme")
Belirtilen Hangi kullanıcıdan bahsedildiğini gösteren kanal hesabı nesnesi
Metin Bahsetmenin kendisini temsil eden activity.text özelliği içindeki metin (boş veya null olabilir)

Bu kod örneği, varlık koleksiyonuna bir bahsetme varlığının nasıl ekleneceğini gösterir.

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

Bahşiş

Kullanıcı amacını belirlemeye çalışırken, bot iletinin bahsedildiği bölümü yoksaymak isteyebilir. yöntemini çağırın GetMentions ve yanıtta döndürülen nesneleri değerlendirin Mention .

Nesneleri yerleştirme

Konumla ilgili bilgiler, iletinin entities özelliği Place nesnesi veya GeoCoordinates nesnesiyle doldurularak ileti içinde iletilebilir.

Place nesnesi şu özellikleri içerir:

Özellik Açıklama
Type Varlığın türü ("Yer")
Adres Açıklama veya posta adresi nesnesi (gelecek)
Coğrafi Bölge Coğrafi Koordinatlar
HasMap Eşleme veya eşleme nesnesinin URL'si (gelecek)
Ad Yerin adı

geoCoordinates nesnesi şu özellikleri içerir:

Özellik Açıklama
Type Varlığın türü ("GeoCoordinates")
Ad Yerin adı
Boylam Konumun boylamı (WGS 84)
Enlem Konumun enlemi (WGS 84)
Elevation Konumun yükseltilmesi (WGS 84)

Bu kod örneği, varlıklar koleksiyonuna bir yer varlığının nasıl ekleneceğini gösterir:

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

Varlıkları kullanma

Varlıkları kullanmak için anahtar sözcüğünü dynamic veya kesin olarak yazılan sınıfları kullanın.

Bu kod örneği, bir iletinin dynamic özelliği içindeki bir varlığı işlemek için anahtar sözcüğün Entities nasıl kullanılacağını gösterir:

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

Bu kod örneği, bir iletinin özelliği içindeki bir varlığı işlemek için kesin olarak belirlenmiş bir sınıfın Entities nasıl kullanılacağını gösterir:

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

Etkinlik türleri

Etkinlikler, en yaygın iletiden sonra birkaç farklı türde olabilir. Farklı etkinlik türleriyle ilgili açıklamalar ve diğer ayrıntılar Bot Framework Etkinlik şemasında bulunabilir.