Entidades e tipos de atividades
APLICA-SE A: SDK v4
Entidades são uma parte de uma atividade e fornecem informações adicionais sobre a atividade ou a conversa.
Observação
Diferentes partes do SDK definem classes de Entidade ou elementos separados.
Entities
A propriedade entidades de uma mensagem é uma matriz de objetos schema.org abertos que permite a troca de metadados contextuais comuns entre o canal e o bot.
Entidades de menção
Vários canais dão suporte à capacidade de um usuário ou bot "mencionar" alguém dentro do contexto de uma conversa. Para mencionar um usuário em uma mensagem, preencha a propriedade entidades da mensagem com um objeto mention. O objeto mention contém essas propriedades:
Propriedade | Descrição |
---|---|
Type | Tipo da entidade ("mention") |
Mencionado | Objeto de conta de canal que indica que o usuário foi mencionado |
Texto | Texto dentro da propriedade activity.text que representa a própria menção (pode ser nulo ou vazio) |
Este exemplo de código mostra como adicionar uma entidade mention à coleção de entidades.
var entity = new Entity();
entity.SetAs(new Mention()
{
Text = "@johndoe",
Mentioned = new ChannelAccount()
{
Name = "John Doe",
Id = "UV341235"
}
});
entities.Add(entity);
Dica
Ao tentar determinar a intenção do usuário, o bot pode querer ignorar essa parte da mensagem no qual ele é mencionado. Chame o método GetMentions
e avalie os objetos Mention
retornados na resposta.
Posicionar objetos
As informações relacionadas a locais podem ser transmitidas dentro de uma mensagem preenchendo a propriedade da mensagem com um objeto Place ou um objeto GeoCoordinates.
O objeto Place contém essas propriedades:
Propriedade | Descrição |
---|---|
Type | Tipo da entidade ("Place") |
Endereço | Descrição ou objeto de endereço postal (futuro) |
Área Geográfica | GeoCoordinates |
HasMap | URL para um mapa ou objeto de mapa (futuro) |
Nome | Nome do local |
O objeto GeoCoordinates contém essas propriedades:
Propriedade | Descrição |
---|---|
Type | Tipo da entidade ("GeoCoordinates") |
Nome | Nome do local |
Longitude | Longitude da localização (WGS 84) |
Latitude | Latitude da localização (WGS 84) |
Elevação | Elevação da localização (WGS 84) |
Este exemplo de código mostra como adicionar uma entidade place à coleção de entidades:
var entity = new Entity();
entity.SetAs(new Place()
{
Geo = new GeoCoordinates()
{
Latitude = 32.4141,
Longitude = 43.1123123,
}
});
entities.Add(entity);
Consumir entidades
Para consumir entidades, use a palavra-chave dynamic
ou classes fortemente tipadas.
Este exemplo de código mostra como usar a palavra-chave dynamic
para processar uma entidade dentro da propriedade Entities
de uma mensagem:
if (entity.Type == "Place")
{
dynamic place = entity.Properties;
if (place.geo.latitude > 34)
// do something
}
Este exemplo de código mostra como usar uma classe fortemente tipada para processar uma entidade dentro da propriedade Entities
de uma mensagem:
if (entity.Type == "Place")
{
Place place = entity.GetAs<Place>();
GeoCoordinates geo = place.Geo.ToObject<GeoCoordinates>();
if (geo.Latitude > 34)
// do something
}
Tipos de Atividade
As atividades podem ser de vários tipos diferentes após a mensagem mais comum. Encontre explicações e mais detalhes sobre diferentes tipos de atividades no esquema de Atividade do Bot Framework.