Я использую Microsoft Graph Api (PHP- ›msGraph SDK) для создания онлайн-встреч. Я столкнулся с ошибкой 403, может кто-нибудь мне помочь.
$clientId = "***********************************";
$clientSecret = "***********************************";
$tenantId = '***********************************';
$responseUri = "http://localhost:8888/moodle39";
$guzzle = new \GuzzleHttp\Client();
$url = 'https://login.microsoftonline.com/' . $tenantId . '/oauth2/v2.0/token';
$token = json_decode($guzzle->post($url, [
'form_params' => [
'client_id' => $clientId,
'client_secret' => $clientSecret,
'scope' => 'https://graph.microsoft.com/.default',
'grant_type' => 'client_credentials',
],
])->getBody()->getContents());
$accessToken = $token->access_token;
//Create a new Graph client.
$graph = new Graph();
$graph->setAccessToken($accessToken);
$onlinemeet->startDateTime = "2020-09-02T14:30:34.2444915";
$onlinemeet->endDateTime = "2020-09-02T15:30:34.2444915";
$onlinemeet->subject = "Test Meeting";
$jso = json_encode($onlinemeet);
$user = $graph->createRequest("POST", "/me/onlineMeetings")->addHeaders(array("Content-Type" => "application/json"))->attachBody($jso)->setReturnType(User::class) ->execute();
Исключение - ошибка клиента: POST https://graph.microsoft.com/beta/me/onlineMeetings привел к ответу 403 Forbidden: {error: {code: Forbidden, message:, innerError: {request-id: bd43aa57-511e-4 (усечено ...)
При создании приложения на лазурном портале
под разрешением API я дал разрешение на доступ
GraphApi- ›Делегированные разрешения-› онлайн-встречи.ЧитатьНаписать.
Может ли кто-нибудь помочь мне с правильным примером или правильным синтаксисом в PHP.
Спасибо !!..
'grant_type' => 'client_credentials',
указывает, что вы используете аутентификацию только для приложений. Здесь вам нужно выполнить поток аутентификации пользователя, например код аутентификации. Учебное пособие есть здесь. - person Jason Johnston   schedule 03.09.2020