https://graph.microsoft.com/v1.0/me/manager не работает в моем приложении PHP - PullRequest
0 голосов
/ 31 октября 2018
$graph = new Graph();
   $graph
      ->setBaseUrl("https://graph.microsoft.com/")
      ->setApiVersion("v1.0")
      ->setAccessToken($_SESSION['access_token']);


 return $me = $graph->createRequest("get", "/me/manager")
                ->addHeaders(array("Content-Type" => "application/json"))
                ->setReturnType(Model\User::class)
                ->setTimeout("1000")
                ->execute();

Отображается ошибка

HTTP / 1.1 403 Forbidden Cache-Control: частное Transfer-Encoding: chunked Content-Type: application / json request-id: b343d567-e1e2-4f46-8bd1-d80d27cf28ab идентификатор запроса клиента: b343d567-e1e2-4f46-8bd1-d80d27cf28ab x-ms-ags-диагностика:

{"ServerInfo":{"DataCenter":"Southeast Asia","Slice":"SliceC","Ring":"3","ScaleUnit":"001","Host":"AGSFE_IN_18","ADSiteName":"SEA"}}
Duration: 35.3167
Strict-Transport-Security: max-age=31536000
Date: Wed, 31 Oct 2018 11:57:45 GMT

{
  "error": {
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation.",
    "innerError": {
      "request-id": "b343d567-e1e2-4f46-8bd1-d80d27cf28ab",
      "date": "2018-10-31T11:57:46"
    }
  }
}

1 Ответ

0 голосов
/ 09 ноября 2018

Ошибка «Отказано в доступе» означает, что вы не запросили нужные области полномочий в приложении, которое вы зарегистрировали. Для / me / manager требуются определенные области, как указано здесь https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_list_manager.

Тип разрешений Разрешения (от наименее до наиболее привилегированных) Делегированный (рабочий или учебный аккаунт) User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All, Directory.AccessAsUser.All

На самом деле вы можете взломать свой код и проверить токен доступа, который вы получаете от входа и согласия. Используйте https://jwt.ms/, и вы увидите области, встроенные в токен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...