Я делаю и приложение с PHP, которые используют Microsoft Graph API. На самом деле я не смог найти какую-либо документацию для php, поэтому я следую инструкциям Microsoft.
Итак, сначала я попытался сделать пример страницы Microsoft для метода post:
POST https://graph.microsoft.com/beta/app/onlineMeetings
Тип контента: приложение / JSON
Длина контента: 1553
{
"meetingType": "meetNow",
"participants": {
"organizer": {
"identity": {
"user": {
"id": <id user azuread teenant>
}
}
}
},
"subject": "subject-value"
}
на самом деле это не работает в Microsoft Graph Explorer. Я уже дал все разрешения и ir возвращает следующее:
Сбой - код состояния 403, 440 мс. Похоже, у вас нет прав для этого вызова.
{
"error": {
"code": "Forbidden",
"message": "",
"innerError": {
"request-id": "fd8cdedd-99f1-4bca-9de6-29a77f834bba",
"date": "2019-04-25T18:06:43"
}
}
}
Хотя проводник не работает с онлайн-встречами и звонками, я перестал им пользоваться и попробовал установить приложение php.
Тогда я попробовал это:
// Create a Graph client
// Set graph version
// Get user info
$graph = new Graph();
$graph->setAccessToken($accessToken);
$graph->setApiVersion("beta");
$createTeamsUrl = '/app/onlineMeetings';
$events = $graph->createRequest('POST', $createTeamsUrl)
->attachBody($body)
->execute();
accessToken - это возвращенный токен из oauth v2.0, и он работает.
Я уже предоставил приложению Azure Ad все разрешения для тестовых целей (включая делегированные и приложения, такие как OnlineMeetings.ReadWrite.All), но при этом возвращается та же ошибка.
Я сделал несколько других запросов, например:
//works
$graph = new Graph();
$graph->setAccessToken($accessToken->getToken());
$user = $graph->createRequest('GET', '/me')
->setReturnType(Model\User::class)
->execute();
и это работает.
Я также скачал пример c #, и он работает, так что я думаю, что это не разрешения
https://github.com/microsoftgraph/microsoft-graph-comms-samples/
Если кто-нибудь знает, поддерживается это или нет, может быть полезно.
Спасибо.