Pessoas e contatos no EWS no Exchange
Saiba mais sobre personas, o Unified Contact Store e como trabalhar com contatos usando a API Gerenciada do EWS ou o EWS no Exchange.
Os contatos são itens no Exchange que armazenam informações sobre um indivíduo, grupo ou organização. Os contatos podem incluir nomes e endereços de email e outras informações, incluindo endereços IM, endereços físicos, aniversários, informações familiares e uma foto ou imagem que representa o contato.
As informações de contato são armazenadas em um dos dois locais:
Active Directory Domain Services (AD DS), se o contato estiver dentro da organização.
A pasta Contatos ou outra pasta na caixa de correio de um usuário, se o contato estiver fora da organização.
Vários itens de contato podem representar um único indivíduo. O Exchange usa personas para ajudar a reunir esses diferentes itens de contato. Uma persona é uma agregação de informações de contato para o mesmo indivíduo de fontes diferentes. Além das informações de contato no Exchange, as personas também podem ser agregadas de informações no cache do destinatário para a caixa de correio, uma pasta oculta para contatos de IM chamada QuickContacts e de fontes de dados de terceiros. O Unified Contact Store no Exchange permite que os clientes de IM usem essa agregação; a única diferença é que o Unified Contact Store não agrega informações do AD DS, conforme mostrado na Figura 1.
Figura 1. Entre em contato com fontes de informações para personas e para o Unified Contact Store
Tabela 1. Métodos de API Gerenciada do EWS e operações EWS para trabalhar com contatos
Se você quiser... | Use este método de API Gerenciada do EWS | Usar essa operação EWS |
---|---|---|
Criar um novo contato |
Instancie um novo objeto Contact e use Contact.Save |
CreateItem |
Copiar um contato |
Contact.Copy |
CopyItem |
Mover um contato |
Contact.Move |
MoveItem |
Atualizar um contato existente |
Contact.Bind e Contact.Update |
UpdateItem |
Excluir um contato |
Contact.Bind e Contact.Delete |
DeleteItem |
Pesquisar um contato |
ExchangeService.FindItems |
FindItem |
Pesquisar pessoas |
N/D |
FindPeople |
Expandir um grupo de distribuição |
ExchangeService.ExpandGroup |
ExpandDL |
Resolver um nome ambíguo |
ExchangeService.ResolveName |
ResolveNames |
Obter uma persona |
N/D |
GetPersona |
Trabalhar com fotos de contato |
Contact.SetContactPicture, Contact.GetContactPictureAttachment ou Contact.RemoveContactPicture |
GetUserPhoto ou GetAttachment |
Personas
Até recentemente, os contatos eram normalmente armazenados em um único local – normalmente, em um cliente de email. Hoje, está se tornando mais comum armazenar contatos em vários locais diferentes, como em um telefone, em um site de rede social, em uma pasta Contatos em uma caixa de correio do Exchange ou no serviço de diretório de uma organização. Com a proliferação de informações de contato, é possível que vários contatos que representam a mesma pessoa contenham informações diferentes; por exemplo, um contato pode incluir um número de telefone comercial e outro um número de telefone pessoal ou um contato armazenado em uma pasta Contatos pode ter um nome diferente do contato para a mesma pessoa armazenada em seu telefone.
Em Exchange Online, Exchange Online como parte de Office 365 e versões locais do Exchange a partir do Exchange 2013, contatos de diferentes fontes que representam a mesma pessoa estão associados uns aos outros, semelhantes à maneira como as mensagens de email são agregadas em conversas, por meio de uma ID de link comum. Quando as informações de contato agregadas são retornadas por um servidor exchange, ela inclui um conjunto de atributos para cada contato, como uma pasta de origem, um nome de exibição, uma ID e uma ID de origem. A soma das propriedades e atributos retornados é conhecida como persona, e o conjunto de propriedades retornadas é conhecido como a forma da persona.
Como as informações que compõem uma persona não são armazenadas em um único local e, como essas informações podem ser alteradas a qualquer momento, uma persona é criada somente quando você faz uma solicitação para um servidor exchange. Você usa a operação FindPeople EWS para fazer uma solicitação de pesquisa de persona. Sua solicitação pode incluir uma ordem de classificação e pode ser filtrada de acordo com uma cadeia de caracteres de consulta para ajudá-lo a encontrar a persona correta ordenando e filtrando os resultados. Por exemplo, você pode recuperar o nome de exibição e um conjunto de todos os endereços de email associados a um contato específico da pasta Contatos, uma conta do Hotmail, uma conta do LinkedIn e um serviço de diretório da empresa ou você pode recuperar um conjunto de todas as personas que têm endereços IM. A vinculação de contatos em personas é automática com base em um algoritmo que reconhece uma relação entre contatos armazenados em vários dispositivos.
Observação
A API gerenciada EWS não implementa essa funcionalidade.
Tabela 2. Operações EWS para trabalhar com personas
Nome da operação | Descrição |
---|---|
FindPeople |
Retorna todas as personas disponíveis de uma pasta de contatos especificada ou recupera contatos que correspondem a uma cadeia de caracteres de consulta especificada. |
GetPersona |
Retorna um conjunto de propriedades associadas a uma persona específica, como todos os endereços IM ou nomes de exibição para uma ID de persona especificada. |
Você pode usar as operações GetPersona e FindPeople para recuperar informações de contato com eficiência de várias fontes. Como todos os itens relacionados a uma persona estão associados a uma ID de link, você pode usar essas operações em uma ampla variedade de aplicativos que usam dados de contato. Estes são alguns exemplos:
Um aplicativo de telefone celular que usa a operação GetPersona quando um usuário chama um contato e oferece números de telefone adicionais para ligar se ninguém atender.
Um aplicativo que usa a operação FindPeople para verificar mensagens de caixa de entrada em busca de endereços de email para determinar se eles são encontrados em uma persona existente. Endereços que ainda não estão associados a uma persona podem ser usados para criar leads de vendas ou listar todas as comunicações recentes com a pessoa representada por essa persona.
Um aplicativo de email para Outlook que oferece saudações diferentes com base em se a correspondência é formal ou informal. As saudações formais são fornecidas pelos nomes de exibição do serviço de diretório e as saudações informais vêm do nome de exibição que se origina em contatos de rede social.
Armazenamento de Contato Unificado
As personas não se limitam apenas a um cliente de email. Se você estiver desenvolvendo um cliente de IM, poderá se perguntar qualquer um ou todos os seguintes:
Como posso provisionar aplicativos cliente do Lync com um conjunto padrão de itens de contato de IM?
Como fazer gerenciar listas de grupos e contatos de IM?
Como fazer gerenciar o acesso personalizado do cliente lync a contatos de IM e grupos de IM?
O Unified Contact Store funciona nos bastidores do Exchange para agregar dados de contato do Exchange e de outras fontes em uma única entidade ou persona. Embora as operações EWS que você usa para acessar o Unified Contact Store sejam específicas para contatos de IM, você pode usar o Unified Contact Store no Exchange para trabalhar com personas em todos os tipos de aplicativos. Lembre-se de que o Unified Contact Store não pode acessar dados de contato do AD DS.
Os contatos de IM são armazenados em uma pasta oculta chamada QuickContacts. Você pode usar as operações AddNewImContactToGroup e AddImContactToGroup para adicionar contatos a grupos armazenados nesta pasta oculta. E como você pode usar o Unified Contact Store para agrupar contatos de IM, você pode acessar e atualizar grupos de contatos com mais facilidade.
Observação
A API gerenciada EWS não implementa essa funcionalidade.
Tabela 3. Operações EWS para acessar o Unified Contact Store
Nome da operação | Descrição |
---|---|
AddNewImContactToGroup |
Adiciona um novo contato de IM a um grupo de IM, até um máximo de 1000 contatos. |
AddImContactToGroup |
Adiciona um contato de IM existente a um grupo de IM, até um máximo de 1000 contatos. |
AddImGroup |
Adiciona um novo grupo de IM, até um máximo de 64 grupos. |
AddDistributionGroupToImList |
Adiciona um novo grupo de distribuição a um grupo de IM, até um máximo de 64 grupos. |
GetImItemList |
Recupera uma lista de grupos de IM e personas de contato de IM. |
GetImItems |
Recupera informações sobre grupos de IM específicos e personas de contato de IM. |
RemoveContactFromImList |
Remove um contato de um grupo de IM. |
RemoveImContactFromGroup |
Remove um contato de IM de um grupo de IM. |
RemoveDistributionGroupFromImList |
Remove um grupo de distribuição de um grupo de IM. |
RemoveImGroup |
Remove um grupo de IM. |
SetImGroup |
Altera o nome de exibição de um grupo de IM. |