2015-11-23 2 views
4

При попытке получить адрес электронной почты https://graph.microsoft.com/v1.0/me Я продолжаю получать ответы, такие как "mail:null".Попытка получить информацию профиля с помощью Sharepoint и Microsoft Graph api

Полный ответ выглядит следующим образом:

{ 
    "@odata.context": "https://graph.microsoft.com/v1.0/", 
    "@odata.type": "#microsoft.graph.user", 
    "@odata.id": "users/XXXXXXXXX", 
    "businessPhones": ["XXXXXXXX"], 
    "displayName": "XXXX XXXX", 
    "givenName": "XXXX", 
    "jobTitle": null, 
    "mail": null, 
    "mobilePhone": "XXXXXXXX", 
    "officeLocation": null, 
    "preferredLanguage": "en-US", 
    "surname": "XXXXXXX", 
    "userPrincipalName": "[email protected]", 
    "id": "XXXXX-XXXXX-XXXXX" 
} 

Кто-нибудь знает, почему он не вернется с полной информацией профиля? Я использую версию 1.0.

+0

Если электронная почта не в 'mail', потому что это альтернативный адрес электронной почты, я хотел бы быть в состоянии получить его. Я не могу найти способ сделать возврат 'otherMails', потому что он появляется в новом API, он больше не является доступным полем. –

ответ

5

Когда вы запрашиваете пользовательский объект (или/меня), Graph возвращает набор свойств по умолчанию (те, которые вы видите выше). Мы делаем это, потому что пользовательский объект содержит загрузку свойств, и мы хотим убедиться, что мы здесь несколько эффективны (поскольку для сериализации и десериализации связки свойств по сети существует сериализация и десериализация). Чтобы получить другие свойства (в том числе свойства профиля SharePoint), которые не заданы по умолчанию, вам нужно использовать $ select = propName1, propName2 в querystring. Чтобы посмотреть полный список, перейдите по ссылке: https://graph.microsoft.io/docs/api-reference/v1.0/resources/user. Мы также рассматриваем введение $ select = * для получения всех свойств.

Что касается причин, по которым почта и офисНаселения не заполняются. Значение mail устанавливается при определенных условиях (например, пользователю назначается лицензия, которая дает им почтовый ящик). OfficeLocation имеет значение null, если оно не установлено для пользователя.

Надеется, что это помогает,

+0

Спасибо. В старом графическом API (graph.windows.net) мы вернем «null» для поля 'mail' и увидим их зарегистрированные альтернативные письма в' otherMails', которые существовали в документах для нового API (версия BETA), но никогда не появлялся в ответах. И в документах вы указываете на свойства, доступные на объекте 'User', он также недоступен. –

+1

Пользователь Office365 включает альтернативный адрес электронной почты (электронная почта размещена на улице, размещается только sharepoint), и я не вижу пути в API-интерфейсе графа, который больше не приводит к этому электронному адресу не в хостинге. Кажется, что любое другое поле представлено иначе, чем 'otherMails' –

+0

Полностью понять Густаво. Мы добавим ** otherMails ** «назад» очень скоро. Одна из проблем, с которыми мы сталкиваемся с Microsoft Graph, - убедиться, что мы имеем согласованность и правильное именование по поверхности API. Поскольку мы хотели согласованности с контактами, мы задерживали создание некоторых свойств, которые существуют в отдельных API. Мы избегали его всплытия сразу, потому что переименование приведет к нарушению изменений. Я обновлю это сообщение (если помню), когда это свойство будет добавлено. –