엔터티 및 활동 형식
적용 대상: SDK v4
엔터티는 활동의 일부이며 활동 또는 대화에 대한 추가 정보를 제공합니다.
참고 항목
SDK의 여러 부분에서는 별도의 엔터티 클래스 또는 요소를 정의합니다.
개체
메시지의 엔터티 속성은 채널과 봇 간에 일반적인 컨텍스트 메타데이터를 교환할 수 있는 개방형 schema.org 개체의 배열입니다.
멘션 엔터티
다양한 채널은 봇 또는 사용자가 대화 컨텍스트 내에서 누군가를 "멘션"하기 위한 기능을 지원합니다. 메시지에서 사용자를 멘션 메시지의 엔터티 속성을 멘션 개체로 채웁다. 멘션 개체에는 다음과 같은 속성이 포함됩니다.
속성 | 설명 |
---|---|
Type | 엔터티 형식("멘션") |
언급 | 멘션 사용자를 나타내는 채널 계정 개체 |
Text | 멘션 자체를 나타내는 activity.text 속성 내의 텍스트(비어 있거나 null일 수 있음) |
이 코드 예제는 엔터티 컬렉션에 멘션 엔터티를 추가하는 방법을 보여줍니다.
var entity = new Entity();
entity.SetAs(new Mention()
{
Text = "@johndoe",
Mentioned = new ChannelAccount()
{
Name = "John Doe",
Id = "UV341235"
}
});
entities.Add(entity);
팁
사용자 의도를 확인하려고 할 때 봇은 멘션 메시지의 해당 부분을 무시하려고 할 수 있습니다. 메서드를 GetMentions
호출하고 응답에서 반환된 Mention
개체를 평가합니다.
개체 배치
메시지의 엔터티 속성을 Place 개체 또는 GeoCoordinates 개체로 채워 메시지 내에서 위치 관련 정보를 전달할 수 있습니다.
장소 개체는 다음 속성을 포함합니다.
속성 | 설명 |
---|---|
Type | 엔터티의 형식("Place") |
주소 | 설명 또는 우편 주소 개체(미래) |
지역 | GeoCoordinates |
HasMap | map 또는 map 개체에 대한 URL(미래) |
이름 | 장소의 이름 |
geoCoordinates 개체는 다음 속성을 포함합니다.
속성 | 설명 |
---|---|
Type | 엔터티의 형식("GeoCoordinates") |
이름 | 장소의 이름 |
경도 | 위치의 경도(WGS 84) |
위도 | 위치의 위도(WGS 84) |
권한 상승 | 위치 상승(WGS 84) |
이 코드 예제는 엔터티 컬렉션에 장소 엔터티를 추가하는 방법을 보여줍니다.
var entity = new Entity();
entity.SetAs(new Place()
{
Geo = new GeoCoordinates()
{
Latitude = 32.4141,
Longitude = 43.1123123,
}
});
entities.Add(entity);
엔터티 사용
엔터티를 사용하려면 키워드(keyword) 또는 강력한 형식의 클래스를 사용합니다 dynamic
.
이 코드 예제는 dynamic
키워드를 사용하여 메시지의 Entities
속성 내에서 엔터티를 처리하는 방법을 보여줍니다.
if (entity.Type == "Place")
{
dynamic place = entity.Properties;
if (place.geo.latitude > 34)
// do something
}
이 코드 예제에서는 강력한 형식의 클래스를 사용하여 메시지의 속성 내에서 엔터티를 Entities
처리하는 방법을 보여줍니다.
if (entity.Type == "Place")
{
Place place = entity.GetAs<Place>();
GeoCoordinates geo = place.Geo.ToObject<GeoCoordinates>();
if (geo.Latitude > 34)
// do something
}
활동 유형
작업은 몇 가지 다른 형식의 가장 일반적인 메시지일 수 있습니다. 다양한 활동 유형에 대한 설명 및 자세한 내용은 Bot Framework 활동 스키마에서 찾을 수 있습니다.