Я пытаюсь интегрироваться с API-интерфейсами Outlook (точнее, я хочу перечислить контакты пользователей и иметь возможность использовать CRUD для них).
Я создал учетную запись Azure, Office 365учетная запись разработчика и приложение в Azure.
Я могу получить токен доступа с помощью конечной точки входа в систему, как показано ниже:
https://login.microsoftonline.com/<tenant_id>/oauth2/token
И я могу получить список пользователейили получить данные пользователя с помощью конечной точки /users
, используя токен на предъявителя.Результат метода «get user» возвращает что-то вроде этого:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"businessPhones": [],
"displayName": "Renato Oliveira",
"givenName": "Renato",
"jobTitle": null,
"mail": null,
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": "Oliveira",
"userPrincipalName": "renato.company.com.br#EXT#@renatocompanycom.onmicrosoft.com",
"id": "<user_id>"
}
Конечно, это использует конечную точку /users
, передавая на нее user_id
:
https://graph.microsoft.com/v1.0/users/<user_id>
Однако я не могу получить контакты этого пользователя.Когда я отправляю запрос GET на конечную точку ниже
https://graph.microsoft.com/v1.0/users/<user_id>/contacts
, я получаю ошибку ниже:
{
"error": {
"code": "OrganizationFromTenantGuidNotFound",
"message": "The tenant for tenant guid '<my_active_directory_tenant_id>' does not exist.",
"innerError": {
"request-id": "<request_id>",
"date": "2019-03-18T20:43:16"
}
}
}
Почему это происходит?Почему он работает с /users
, но не с /users/{id}/contacts
, даже если у приложения активированы все разрешения, и для каталога по умолчанию было дано согласие администратора?