Usar a API do Microsoft Pesquisa para pesquisar pessoas
Os aplicativos do Microsoft Graph podem usar a API do Microsoft Pesquisa para recuperar as pessoas mais relevantes para um usuário. A relevância é determinada pelos padrões de comunicação e colaboração e pelas relações comerciais do usuário. Pessoas podem ser contatos locais ou do diretório de uma organização ou pessoas de comunicações recentes.
Além de gerar esse insight, a pesquisa também fornece suporte de pesquisa correspondente difuso e a capacidade de recuperar a lista de usuários relevantes para outro usuário na organização do usuário conectado.
APIs Pessoas
Você pode usar as APIs a seguir para pesquisar pessoas dentro de uma organização.
- /Busca
- /Pessoas
Observação
Recomendamos que os usuários chamem o /search
ponto de extremidade em vez do ponto de /people
extremidade. Daqui para frente, todos os investimentos futuros só estarão disponíveis no /search
ponto de extremidade; o /people
ponto de extremidade está no modo de manutenção.
Propriedades de pessoas retornadas
A API de pessoas retorna o seguinte conjunto de propriedades.
Propriedade | Tipo |
---|---|
additionalOfficeLocation | Cadeia de caracteres |
CompanyName | String |
department | String |
displayName | Cadeia de caracteres |
emailAddress | Cadeia de caracteres |
givenName | Cadeia de caracteres |
hitId | Cadeia de caracteres |
imAddress | String |
jobTitle | String |
officeLocation | String |
personType | Cadeia de caracteres |
telefones | Cadeia de caracteres |
classificação | Número inteiro |
summary | Cadeia de caracteres |
surname | Cadeia de caracteres |
userPrincipalName | Cadeia de caracteres |
Tipos de pessoa
A tabela a seguir mostra tipos de pessoas e subtipos com suporte na API de pessoas.
Variações de pessoas, grupos e salas com suporte | Detalhes do tipo de destinatário | Mailbox | Diretório | Pessoas tipo | Pessoas subtipo | Observações |
---|---|---|---|---|---|---|
Usuário da organização | UserMailbox, MailUser | S | S | Pessoa | OrganizationUser | Um usuário que pertence à organização. |
Usuário da organização sem endereço de email | Usuário | Y (Desativado por padrão) | Y (Desativado por padrão) | Pessoa | OrganizationUser | Um usuário que pertence à organização. |
Contato da organização | MailContact, Contact | N | S | Pessoa | OrganizationContact | Um contato adicionado explicitamente à GAL (lista de endereços global) pelo administrador do locatário, mas isso não faz parte da organização. |
Contato privado | Contato | S | N/D | Pessoa | PersonalContact | Um contato criado explicitamente pelo usuário que não pertence à organização. Se o usuário adicionar manualmente aos seus contatos alguém parte da organização, ele ainda será classificado como OrganizationUser . |
Contato privado sem endereço de email | Contato | Y (Desativado por padrão) | N/D | Pessoa | PersonalContact | Um contato criado explicitamente pelo usuário que não pertence à organização. Se o usuário adicionar manualmente aos seus contatos alguém parte da organização, ele ainda será classificado como OrganizationUser . |
Contato implícito do histórico de comunicação | Contato | S | N/D | Pessoa | ImplicitContact | Um contato inferido do histórico de comunicação (email e chat) que não temos informações suficientes para determinar se é uma pessoa, um grupo etc. Em contas comerciais, esse sempre será um contato externo da organização, pois os contatos internos da organização encontrados no histórico de comunicação sempre serão classificados como OrganizationUser . Para contas de consumidor, qualquer coisa que não seja uma PersonalContact é classificada como ImplicitContact . |
Contato implícito do histórico de chat | Contato | S | N/D | Pessoa | ChatImplicitContact | O mesmo que ImplicitContact , mas quando o histórico de comunicação é exclusivamente do chat. |
Room | Rooms | S | S | Outros | Room | |
Guest | GuestUser | S | S | Outros | Guest | |
Convidado oculto | GuestUser | Y (Desativado por padrão) | Y (Desativado por padrão) | Outros | Guest | |
Grupo moderno | Agrupar | S | S | Agrupar | UnifiedGroup | Grupo conhecido como: Grupo exchange 365, grupos modernos, Grupos do Microsoft 365. Para obter mais informações sobre Grupos do Microsoft 365, consulte Saiba mais sobre Grupos do Microsoft 365. |
Grupo teams | Agrupar | S | S | Agrupar | UnifiedGroup | O mesmo que Grupos do Microsoft 365, mas representa internamente uma equipe no Microsoft Teams. |
Grupo do Teams Ocultos | Agrupar | Y (Desativado por padrão) | S | Agrupar | UnifiedGroup | Grupo do Teams Ocultos. |
Lista de distribuição | Agrupar | S | S | Agrupar | PublicDistributionList | Lista de distribuição clássica do Exchange ou grupo de segurança habilitado para email. |
Lista de distribuição pessoal | Contato | Y (Desativado por padrão) | N/D | Agrupar | PersonalDistributionList | Um grupo de distribuição virtual criado pelo usuário como auxiliar para enviar emails para vários contatos de maneira fácil. Usado apenas para Outlook na Web compor como um recurso UX, não retornado para outros chamadores. |
Objeto oculto de qualquer tipo, exceto grupo Convidado e Teams | N | N |
Solicitar detalhes
Torne os resultados da API de pessoas mais específicos, fornecendo detalhes adicionais ao fazer uma solicitação. A seguir estão algumas maneiras de tornar as solicitações mais específicas.
Exemplo 1: somente resultados de caixa de correio
"Provenances": ["Mailbox"]
Exemplo 2: Resultados de ambas as fontes
"Provenances": ["Mailbox", "Directory"]
Fonte de resultados
Pessoas resultados são provenientes de duas fontes, caixa de correio ou diretório. Por padrão, os resultados virão de ambas as fontes com conflitos sendo removidos, o que garante que os mesmos valores não sejam retornados.
Observação: no caso de um conflito, as fontes de diretório são preferenciais.
Os resultados da caixa de correio consistem em:
- Pessoas que lhe enviou um email
- Pessoas para quem você enviou email
- Pessoas você teve reunião com
- Pessoas você conversou com o Teams
- Pessoas no gráfico de organização do seu gerente
- Contatos públicos das pessoas acima
Aspectos relevantes para o caso de uso quando uma fonte de diretório pesquisa na lista de endereçamento global em Microsoft Entra ID:
- Não aplicável para usuários consumidores
- Pessoas que não estão na lista de endereçamento global do chamador não serão retornados
- Pessoas que estão ocultos pelo IBP (protocolo de barreira de informações) não serão retornados
- Pessoas que estão ocultos na lista de endereços não serão retornados
Obter mais resultados
Especifique o tamanho para obter mais resultados. Por padrão, 25 resultados ou menos serão retornados com base nas correspondências de consulta de pesquisa.
"Size": 25
Especificar o índice mínimo para paginação
Defina o índice mínimo para paginação para especificar a página inicial dos resultados. Por padrão, o índice mínimo para paginação é 0
e o primeiro resultado é o mais relevante.
"From": 0
Selecione os campos para retornar
A API retorna um conjunto de propriedades padrão, mas você pode personalizar uma solicitação para retornar um número específico de propriedades. O exemplo a seguir limita a resposta às propriedades DisplayName, EmailAddresses e telefones .
"Fields": ["DisplayName", "EmailAddresses", "phones"]
Usar um filtro para limitar a resposta
Use o objeto Filter para limitar a resposta a valores específicos. Os possíveis valores de filtro são: PeopleType, PeopleSubType.
Os exemplos a seguir mostram solicitações que usam o objeto Filter para retornar pessoas cujo registro contém os critérios especificados.
Exemplo 1: Filtrar sugestões de pessoa
O exemplo a seguir limita a resposta a apenas sugestões de pessoa. A resposta contém contatos privados e de organização.
"Filter": {
"And": [
{
"Term": {
"PeopleType": "Person"
}
}
]
},
Exemplo 2: Filtrar sugestões de pessoa dentro da organização
O exemplo a seguir limita o reponse somente aos usuários empresariais.
"Filter": {
"And": [
{
"Term": {
"PeopleType": "Person"
}
},
{
"Term": {
"PeopleSubtype": "OrganizationUser"
}
}
]
},
Exemplo 3: Filtrar para todos os usuários, listas de distribuição ou lista de distribuição moderna na organização
O exemplo a seguir limita a resposta a diferentes categorias de PeopleSubtype.
"Filter": {
"Or": [
{
"Term": {
"PeopleSubtype": "OrganizationUser"
}
},
{
"Term": {
"PeopleSubtype": "PublicDistributionList"
}
},
{
"Term": {
"PeopleSubtype": "UnifiedGroup"
}
}
]
},
Exemplo 4: Filtrar para usuários da organização e salas de reunião
O exemplo a seguir limita a resposta a usuários da organização e salas de reunião.
"Filter": {
"Or": [
{
"Term": {
"PeopleSubtype": "OrganizationUser"
}
},
{
"Term": {
"PeopleSubtype": "Rooms"
}
}
]
},
Exemplo 5: Filtrar para usuários e convidados da organização
O exemplo a seguir limita a resposta a usuários e convidados da organização.
"Filter": {
"Or": [
{
"Term": {
"PeopleSubtype": "OrganizationUser"
}
},
{
"Term": {
"PeopleSubtype": "Guest"
}
}
]
},
Exemplo 6: Combinar vários filtros
O exemplo a seguir combina vários filtros para limitar a resposta aos critérios especificados.
"Filter": {
"And": [
{
"Or": [
{
"Term": {
"PeopleType": "Person"
}
},
{
"Term": {
"PeopleType": "Other"
}
}
]
},
{
"Or": [
{
"Term": {
"PeopleSubtype": "OrganizationUser"
}
},
{
"Term": {
"PeopleSubtype": "Guest"
}
}
]
}
]
},
Solicitação completa
Exemplo: Pesquisa pessoa pelo nome
A solicitação a seguir obtém as pessoas mais relevantes para o usuário conectado, com base em padrões de comunicação e colaboração e relações comerciais.
Solicitação
POST https://graph.microsoft.com/beta/search/query
Content-Type: application/json
{
"requests": [
{
"entityTypes": [
"person"
],
"query": {
"queryString": "contoso"
},
"from": 0,
"size": 25
}
]
}
Resposta
A seguir está um exemplo da resposta, que contém uma mensagem que corresponde ao critério de pesquisa.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.searchResponse",
"value": [
{
"hitsContainers": [
{
"total": 1,
"moreResultsAvailable": false,
"hits": [
{
"hitId": "fc138b85-18ac-48e0-80a4-633ae4b594e0@41f988bf-86f1-53af-91ab-2d7cd034db47",
"rank": 1,
"summary": "",
"resource": {
"@odata.type": "#microsoft.graph.person",
"displayName": "Example User",
"givenName": "User",
"surname": "User",
"department": "Finance",
"officeLocation": "London",
"userPrincipalName": "example.user@contoso.com",
"emailAddresses": [
{
"address": "example.user@contoso.com",
"rank": 1
}
],
"phones": [
{
"type": "business",
"number": "+44 (20) 12345678"
}
]
}
}
]
}
]
}
]
}