Как получить фотографию пользователя exchange / outlook / office365?


Наша компания работает в Office 365. Поэтому, когда пользователи входят в мой asp.net сайт mvc, я хотел бы показать их фотографию, как это делает Outlook.

Где outlook получает фотографию пользователя? И как я могу добраться до него программно?

Я пытался открыть ActiveDirectory и получить thumbnailPhoto, но для большинства пользователей он пуст. Таким образом, Outlook должен получать его в другом месте. Где и как?

Я также видел несколько примеров, когда Microsoft.Офис.Взаимодействие.Прогноз используется сборка (при условии, что для ее работы требуется установленный Outlook). Однако этот веб-сайт работает на сервере, на котором не установлен Outlook.

2 3

2 ответа:

Я попытался запустить ActiveDirectory и получить thumbnailPhoto, но для большинства пользователей он пустой. Таким образом мировоззрение должно быть получить его в другом месте. Где и как?

Фотография пользователяне доступна в вашем объявлении на месте, потому что ваши пользователи, скорее всего, не сохранили ее там, если вы не предоставили им приложение, которое записывает ее в объявление.

Фотография пользователя доступна в вашем AD Azure, поскольку ваши пользователи, скорее всего, применяют свои фотографии в Outlook (или в интернете).

Я предполагаю, что локальная реклама синхронизируется с Azure AD с помощью утилитDirsync илиADConnect . Если да, то на самом деле атрибуты photo или thumbnailphoto синхронизируются только в один конец (из локальной среды в Azure) и не записываются обратно. Ссылка здесь для DirSync и здесь для ADConnect. Вот почему вы не можете получить его. из вашего объявления.

Как получить фотографию пользователя exchange / outlook / office365?

Существует несколько способов получить фотографию из Azure AD:
  1. Веб-службы Exchange (EWS): С помощью операции GetUserPhoto. В основном отправка конверта с мылом с адресом электронной почты и размером. XML-ответ даст вам закодированную в base64 фотографию, содержащуюся в элементе PictureData

  2. Exchange Web Службы (управляемый API EWS и / или REST API): в основном используют службу автообнаружения для URL https://outlook.office365.com/ews/exchange.asmx, а затем подключаются с помощью метода EWS.Service.ConnectToService в пространстве имен Microsoft.Exchange.WebServices.Data, для которого требуется ссылка на библиотеку (DLL, которую можно загрузить отсюда). Метод остается тем же GetUserPhoto, и изображение содержится в ответе в двоичном виде.

  3. Outlook REST API: в основном отправка запроса GET в Outlook API (с носителем маркер доступа) на URL https://outlook.office.com/api/{version}/me/photo для вашего собственного и на URL https://outlook.office.com/api/{version}/users/email@example.com/photo. Вы получаете фотопоток в двоичном формате в качестве ответа. Не забудьте добавить $value, чтобы получить большой двоичный объект, иначе вы получите метаданные. более подробная информация приведена здесь.

  4. Office 365 Unified API (aka Graph): в основном почти то же самое, что и более старый API. Отправьте запрос GET (с маркером носителя) на URL https://graph.microsoft.com/{version}/me/photo/ для вашей собственной фотографии и https://graph.microsoft.com/{version}/users/UPN/photo для другого пользователя. Более или менее ... такой же. Более подробная информация приведена здесь . Существует такжепесочница здесь для вас, чтобы изучить образцы и ссылки API. Вы также можете попробовать его самостоятельно в интерактивном режиме здесь (Не забудьте войти в систему перед запуском запросов get)

Надеюсь, это поможет.

Еще несколько ссылок: здесь, здесь и здесь.

Попробуйте этот метод, он работает для меня Он будет получать изображение профиля пользователя из учетной записи

Https://outlook.office365.com/owa/service.svc/s/GetPersonaPhoto?email=plambhure@sanjeevgroup.com&UA=0&size=HR64x64&sc=1468233338850