«Арендатор для guid арендатора не существует», даже если пользователь указан в конечной точке пользователя? - PullRequest
3 голосов
/ 18 марта 2019

Я пытаюсь интегрироваться с 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, даже если у приложения активированы все разрешения, и для каталога по умолчанию было дано согласие администратора?

1 Ответ

2 голосов
/ 19 марта 2019

Я не воспроизвел вашу проблему на моей стороне.Мои шаги, как показано ниже для вашей справки.

1. Зарегистрируйте приложение на портале Azure и предоставьте ему графическое разрешение.

2. Получите токен доступа.enter image description here

3.Прежде чем вызывать API, вам необходимо подтвердить, что в учетной записи должен быть действующий адрес электронной почты.Мой demo101@**.onmicrosoft.com.enter image description here

4. Вызовите график api.
enter image description here

...