Я зарегистрировал веб-приложение на портале Azure, предоставил ему разрешение Contacts.Read
, дал ему разрешение администратора и теперь пытаюсь составить список личных контактов определенного пользователя с помощью Microsoft Graph REST API v1.0 с помощью этого приложения.
Сначала я пытаюсь получить токен доступа, отправив запрос POST
на
https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token
со следующими параметрами тела: scope=https://graph.microsoft.com/contacts.read
, grant_type=client_credentials
, мой client_id
и мой client_secret
.
В ответ я получаю сообщение об ошибке 400 Bad Request
. Тело:
{"error":"invalid_scope","error_description":"AADSTS70011: The provided request must include a 'scope' input parameter. The provided value for the input parameter 'scope' is not valid. The scope https://graph.microsoft.com/contacts.read is not valid."}
Когда я заменяю параметр области действия в запросе токена следующим образом: scope=https://graph.microsoft.com/.default
, я фактически получаю 200 OK
и мой токен на предъявителя в ответ.
Но когда я запрашиваю личные контакты пользователя, отправив GET
запрос на https://graph.microsoft.com/v1.0/users/{user_id}/contacts
с этим токеном, я получаю 401 Unauthorized
в ответ со следующей ошибкой:
"code": "NoPermissionsInAccessToken",
"message": "The token contains no permissions, or permissions can not be understood.",
Я также попытался заменить значение scope
в моем запросе токена на {app_id_uri}/.default
и {app_id_uri}/contacts.read
, но безуспешно.
Так как мне перечислить личные контакты пользователей с помощью Microsoft Graph REST API v1.0? Что я делаю не так?
РЕДАКТИРОВАТЬ: скриншот Разрешения: