Поделиться через


Пользователи и контакты в 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.

В этой статье

См. также