Пользователи и контакты в EWS для Exchange
Сведения о фиктивных пользователях, едином хранилище контактов и работе с контактами с помощью EWS в Exchange или управляемого API для EWS.
Контакты — это элементы в Exchange, в которых хранится информация об отдельных людях, группах или организациях. Контакты могут включать имена, электронные адреса и другие данные, в том числе адреса для IM, физические адреса, информацию о семье и днях рождения, фотографию или изображение.
Контактные данные хранятся в одном из двух расположений:
в доменных службах Active Directory (AD DS), если контакт находится в организации;
в папке "Контакты" или другой папке почтового ящика пользователя, если контакт находится вне организации.
Одного человека могут представлять несколько элементов контакта. С помощью фиктивных пользователей в Exchange можно объединить эти различные элементы контакта. Фиктивный пользователь сочетает в себе контактные данные из разных источников, относящиеся к одному человеку. Кроме контактных данных из Exchange, фиктивные пользователи также могут содержать данные кэша получателей для почтового ящика, данные скрытой папки QuickContacts для контактов IM, а также данные сторонних источников. Единое хранилище контактов в Exchange позволяет клиентам службы обмена мгновенными сообщениями использовать эти сводные данные, но только без информации из AD DS, как показано на рисунке 1.
Рис. 1. Источники контактных данных для пользователей и единого хранилища контактов
Таблица 1. Методы управляемого API для EWS и операции EWS для работы с контактами
Задача | Используйте этот метод управляемого API EWS | Используйте эту операцию EWS |
---|---|---|
Создать контакт |
Создать новый экземпляр объекта Contact и использовать свойство Contact.Save |
CreateItem |
Копировать контакт |
Contact.Copy |
CopyItem |
Переместить контакт |
Contact.Move |
MoveItem |
Обновить существующий контакт |
Contact.Bind и Contact.Update |
UpdateItem |
Удалить контакт |
Contact.Bind и Contact.Delete |
DeleteItem |
Найти контакт |
ExchangeService.FindItems |
FindItem |
Найти пользователей |
Н/Д |
FindPeople |
Развернуть группу рассылки |
ExchangeService.ExpandGroup |
ExpandDL |
Устранить неоднозначность имени |
ExchangeService.ResolveName |
ResolveNames |
Получить фиктивного пользователя |
Н/Д |
GetPersona |
Обработать фотографии контакта |
Contact.SetContactPicture, Contact.GetContactPictureAttachment или Contact.RemoveContactPicture |
GetUserPhoto или GetAttachment |
Фиктивные пользователи
До недавнего времени контакты обычно хранились в одном расположении, как правило, в почтовом клиенте. Сегодня все чаще можно хранить контакты в разных местах, например на телефоне, на сайте социальной сети, в папке "Контакты" в почтовом ящике Exchange или в службе каталогов организации. При распространении контактных данных возможно, что несколько контактов, представляющих одного и того же человека, содержат разные сведения; Например, один контакт может содержать рабочий номер телефона, а другой — личный, или контакт, хранящийся в папке "Контакты", может иметь имя, отличное от имени контакта того же человека, которое хранится на вашем телефоне.
В Exchange Online (как автономной службе, так и службе в составе Office 365) и локальных версиях Exchange, начиная с Exchange 2013, контакты из разных источников, представляющие одного и того же человека, сопоставлены друг с другом подобно электронным сообщениям, объединенным в беседы, с помощью общих идентификаторов связи. Когда сервер Exchange Server возвращает объединенные контактные данные, они включают набор атрибутов для каждого контакта, таких как исходная папка, отображаемое имя, идентификатор источника и другой идентификатор. Все возвращенные свойства и атрибуты в целом — это фиктивный пользователь, а набор возвращенных свойств — форма фиктивного пользователя.
Поскольку сведения, составляющие персону, не хранятся в одном расположении, и эта информация может измениться в любое время, пользователь создается только при выполнении запроса к серверу Exchange Server. Вы используете операцию FindPeople EWS, чтобы создать запрос на поиск пользователя. Запрос может содержать порядок сортировки и фильтроваться по строке запроса, чтобы помочь вам найти правильную персону, упорядочив и отфильтровав результаты. Например, можно получить отображаемое имя и набор всех адресов электронной почты, связанных с определенным контактом, из папки Контакты, учетной записи Hotmail, учетной записи LinkedIn и службы каталогов компании, а также можно получить набор всех пользователей с мгновенными адресами. Связывание контактов с пользователями выполняется автоматически на основе алгоритма, который распознает связь между контактами, хранящимися на различных устройствах.
Примечание.
Управляемый API EWS не реализует эту функцию.
Табл. 2. Операции EWS для работы с фиктивными пользователями
Имя операции | Описание |
---|---|
FindPeople |
Возвращает всех доступных фиктивных пользователей из указанной папки контактов или извлекает контакты, которые соответствуют заданной строке запроса. |
GetPersona |
Возвращает набор свойств, сопоставленных с определенным фиктивным пользователем, таких как все адреса для IM или отображаемые имена, по указанному идентификатору фиктивного пользователя. |
Вы можете использовать операции GetPersona и FindPeople для эффективного извлечения контактных данных из нескольких источников. Так как все элементы, которые относятся к фиктивному пользователю, сопоставлены с идентификатором связи, эти операции можно применять ко множеству приложений, использующих контактные данные. Вот несколько примеров:
Приложение на мобильном телефоне, которое использует операцию GetPersona, когда пользователь звонит контакту, после чего предлагает дополнительные номера телефонов, если никто не отвечает.
Приложение, с помощью операции FindPeople проверяющее, есть ли в электронных адресах сообщений из папки "Входящие" такие, которые включены в существующего фиктивного пользователя. Адреса, уже не сопоставленные с фиктивным пользователем, можно использовать для оформления потенциальных клиентов или создания списка всех недавних бесед с человеком, который представлен этим пользователем.
Почтовое приложение для Outlook, в котором доступны различные варианты приветствия в зависимости от того, формальна переписка или нет. Формальные приветствия предоставляются с учетом отображаемых имен из службы каталогов, а неформальные — с учетом отображаемых имен из социальной сети.
Единое хранилище контактов
Фиктивные пользователи доступны не только в почтовом клиенте. Если вы разрабатываете клиент для обмена мгновенными сообщениями, задайте себе такие вопросы (можно все):
Как обеспечить клиентские приложения Lync стандартным набором элементов контакта для IM?
Как управлять списками групп и контактов для IM?
Как управлять специальным клиентским доступом Lync к контактам и группам для IM?
Единое хранилище контактов незаметно работает в Exchange, объединяя контактные данные из Exchange и других источников в единую сущность (создавая фиктивного пользователя). Хотя операции EWS, которые вы используете для доступа к единому хранилищу контактов, касаются только контактов для IM, с помощью этого хранилища в Exchange можно работать с фиктивными пользователями в приложениях всех типов. Помните, что у единого хранилища контактов нет доступа к контактным данным AD DS.
Контакты для IM хранятся в скрытой папке QuickContacts. С помощью операций AddNewImContactToGroup и AddImContactToGroup можно добавить контакты в группы, которые хранятся в этой скрытой папке. Так как с помощью единого хранилища контактов можно группировать контакты для IM, стало проще обновлять группы контактов и получать к ним доступ.
Примечание.
Управляемый API EWS не реализует эту функцию.
Табл. 3. Операции EWS для доступа к единому хранилищу контактов
Имя операции | Описание |
---|---|
AddNewImContactToGroup |
Добавляет новый контакт для IM в группу для IM (количество контактов не должно превышать 1000). |
AddImContactToGroup |
Добавляет существующий контакт для IM в группу для IM (количество контактов не должно превышать 1000). |
AddImGroup |
Добавляет новую группу для IM (максимальное количество групп — 64). |
AddDistributionGroupToImList |
Добавляет новую группу рассылки в группу для IM (максимальное количество групп — 64). |
GetImItemList |
Получает список групп для IM и фиктивных пользователей, включающих контакты для IM. |
GetImItems |
Получает сведения о конкретных группах для IM и фиктивных пользователях, включающих контакты для IM. |
RemoveContactFromImList |
Удаляет контакт из группы для IM. |
RemoveImContactFromGroup |
Удаляет контакт для IM из группы для IM. |
RemoveDistributionGroupFromImList |
Удаляет группу рассылки из группы для IM. |
RemoveImGroup |
Удаляет группу для IM. |
SetImGroup |
Изменяет отображаемое имя группы для IM. |