Microsoft Graph API: получить организацию пользователя - PullRequest
2 голосов
/ 09 апреля 2019

Я использую Microsoft Graph API для получения некоторых сведений о пользователе.Я также использую AD для аутентификации и авторизации.

В этом приложении пользователь после входа в систему будет искать некоторых пользователей, и ему нужны некоторые данные для всех пользователей, соответствующих запросу.

Я нажал ниже пользователей api , с фильтрами, но я не получаю никакой информации относительно названия компании для соответствующих пользователей.

https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'jo')

Ниже приведен ответ для того же

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
  "@odata.nextLink": "https://graph.microsoft.com/v1.0/users?$skiptoken=X%2744537074020001000000203A636F6D7061735F766A61407465737473636F7270696F67726F75702E6E657429557365725F33386664353661362D366361612D343939332D393264642D383439633938613039393033B900000000000000000000%27",
  "value": [
        {
            "businessPhones": [],
            "displayName": "John Doe",
            "givenName": "John",
            "jobTitle": null,
            "mail": null,
            "mobilePhone": null,
            "officeLocation": null,
            "preferredLanguage": null,
            "surname": "Doe",
            "userPrincipalName": "jdoe@mycomp.net",
            "id": "c8f63ba1-5150-44c1-b456-468040f12345"
        }
  ]
}

Что мне нужно сделать, чтобы получить название компании для пользователей моей организации?

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Ресурс user по умолчанию возвращает только подмножество свойств. Согласно документации :

Примечание. Получение пользователем возвращает только набор свойств по умолчанию ( businessPhones, displayName, данное имя, id, jobTitle, почта, мобильный телефон, officeLocation, предпочитаемый язык, фамилия, userPrincipalName ). Используйте $select, чтобы получить другие свойства и отношения для объекта пользователя.

Другими словами, вам нужно добавить параметр $select в ваш запрос, в котором перечислены свойства, которые вы хотите вернуть. Например, если вы хотите получить id, userPrincipalName и companyName, вы должны использовать:

https://graph.microsoft.com/v1.0/users?$select=displayName,id,jobTitle,companyName

Полный набор доступных свойств можно найти в Типе ресурса пользователя документы.

1 голос
/ 09 апреля 2019

Я хочу получить эту информацию для всех пользователей, используя только один логин

Это невозможно.Единственный способ получить информацию об организации - использовать https://graph.microsoft.com/v1.0/organization api.

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

Если вы используете common в URL-адресе запроса токена, вы получите организацию по умолчанию для этого логина.

Если вы используете конкретного арендатора в URL-адресе запроса, вы получите сведения об организации для этого арендатора.

Если вы просто хотите получить companyName пользователя, вы можете позвонить https://graph.microsoft.com/beta/users/{userid}чтобы получить его.

enter image description here

...