Как получить фотографию пользователя exchange / outlook / office365?
Наша компания работает в Office 365. Поэтому, когда пользователи входят в мой asp.net сайт mvc, я хотел бы показать их фотографию, как это делает Outlook.
Где outlook получает фотографию пользователя? И как я могу добраться до него программно?
Я пытался открыть ActiveDirectory и получить thumbnailPhoto, но для большинства пользователей он пуст. Таким образом, Outlook должен получать его в другом месте. Где и как?
Я также видел несколько примеров, когда Microsoft.Офис.Взаимодействие.Прогноз используется сборка (при условии, что для ее работы требуется установленный Outlook). Однако этот веб-сайт работает на сервере, на котором не установлен Outlook.
2 ответа:
Я попытался запустить ActiveDirectory и получить thumbnailPhoto, но для большинства пользователей он пустой. Таким образом мировоззрение должно быть получить его в другом месте. Где и как?
Фотография пользователяне доступна в вашем объявлении на месте, потому что ваши пользователи, скорее всего, не сохранили ее там, если вы не предоставили им приложение, которое записывает ее в объявление.
Фотография пользователя доступна в вашем AD Azure, поскольку ваши пользователи, скорее всего, применяют свои фотографии в Outlook (или в интернете).
Я предполагаю, что локальная реклама синхронизируется с Azure AD с помощью утилитDirsync илиADConnect . Если да, то на самом деле атрибутыphoto
илиthumbnailphoto
синхронизируются только в один конец (из локальной среды в Azure) и не записываются обратно. Ссылка здесь для DirSync и здесь для ADConnect. Вот почему вы не можете получить его. из вашего объявления.Существует несколько способов получить фотографию из Azure AD:Как получить фотографию пользователя exchange / outlook / office365?
Надеюсь, это поможет.
Веб-службы Exchange (EWS): С помощью операции GetUserPhoto. В основном отправка конверта с мылом с адресом электронной почты и размером. XML-ответ даст вам закодированную в base64 фотографию, содержащуюся в элементе PictureData
Exchange Web Службы (управляемый API EWS и / или REST API): в основном используют службу автообнаружения для URL
https://outlook.office365.com/ews/exchange.asmx
, а затем подключаются с помощью методаEWS.Service.ConnectToService
в пространстве именMicrosoft.Exchange.WebServices.Data
, для которого требуется ссылка на библиотеку (DLL, которую можно загрузить отсюда). Метод остается тем жеGetUserPhoto
, и изображение содержится в ответе в двоичном виде.Outlook REST API: в основном отправка запроса
GET
в Outlook API (с носителем маркер доступа) на URLhttps://outlook.office.com/api/{version}/me/photo
для вашего собственного и на URLhttps://outlook.office.com/api/{version}/users/email@example.com/photo
. Вы получаете фотопоток в двоичном формате в качестве ответа. Не забудьте добавить$value
, чтобы получить большой двоичный объект, иначе вы получите метаданные. более подробная информация приведена здесь.Office 365 Unified API (aka Graph): в основном почти то же самое, что и более старый API. Отправьте запрос
GET
(с маркером носителя) на URLhttps://graph.microsoft.com/{version}/me/photo/
для вашей собственной фотографии иhttps://graph.microsoft.com/{version}/users/UPN/photo
для другого пользователя. Более или менее ... такой же. Более подробная информация приведена здесь . Существует такжепесочница здесь для вас, чтобы изучить образцы и ссылки API. Вы также можете попробовать его самостоятельно в интерактивном режиме здесь (Не забудьте войти в систему перед запуском запросов get)