エンティティとアクティビティの種類
この記事の対象: SDK v4
エンティティはアクティビティの一部であり、アクティビティまたは会話に関する追加情報を提供します。
Note
SDK の異なる部分で、別の entity クラスまたは要素を定義します。
エンティティ
メッセージの "エンティティ" プロパティは、拡張可能な schema.org オブジェクトの配列であり、チャネルとボットの間で共通のコンテキスト メタデータを交換するために使用します。
メンション エンティティ
多くのチャネルは、ボットまたはユーザーが会話のコンテキスト内で誰かを "メンション" する能力をサポートしています。 メッセージでユーザーをメンションするには、メッセージのエンティティ プロパティに mention オブジェクトを設定します。 メンション オブジェクトには、次のプロパティが含まれています。
プロパティ | 説明 |
---|---|
Type | エンティティの種類 ("mention") |
Mentioned | メンションされたユーザーを示すチャネル アカウント オブジェクト |
テキスト | メンション自体を表す 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 オブジェクトを設定することによってメッセージ内で伝達できます。
place オブジェクトには、次のプロパティが含まれています。
プロパティ | 説明 |
---|---|
Type | エンティティの種類 ("Place") |
番地 | 説明または住所オブジェクト (将来) |
地域 | GeoCoordinates |
HasMap | 地図の URL または地図オブジェクト (将来) |
名前 | 場所の名前です |
geoCoordinates オブジェクトには、次のプロパティが含まれています。
プロパティ | 説明 |
---|---|
Type | エンティティの種類 ("GeoCoordinates") |
名前 | 場所の名前です |
緯度 | 場所の経度 (WGS 84) |
Latitude | 場所の緯度 (WGS 84) |
Elevation | 場所の標高 (WGS 84) |
このコード例では、場所エンティティをエンティティ コレクションに追加する方法を示します。
var entity = new Entity();
entity.SetAs(new Place()
{
Geo = new GeoCoordinates()
{
Latitude = 32.4141,
Longitude = 43.1123123,
}
});
entities.Add(entity);
エンティティの使用
エンティティを使用するには、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
}
活動の種類
アクティビティには最も一般的な message 以外に複数の種類があります。 さまざまなアクティビティの種類の説明と詳細については、Bot Framework のアクティビティ スキーマに関するページを参照してください。