Это связано с тем, что $ user - это массив, а не объект!?
Правильно, поскольку конечная точка GET Users
возвращает список пользователей , в предоставленном примере:
$users = $graph->createRequest("GET", "/users")
->setReturnType(\Microsoft\Graph\Model\User::class)
->execute();
$users
содержит массив объектов Microsoft\Graph\Model\User
типа и
$givenName = $users[0]->getGivenName();
дает GivenName
свойство первого элемента в массиве .
Можно запросить определенного пользователя через GET /users/{id | userPrincipalName}
конечную точку :
$user = $graph->createRequest("GET", "/users/{$userId}")
->setReturnType(\Microsoft\Graph\Model\User::class)
->execute();
В этом случае $user
объект имеет тип Microsoft\Graph\Model\User
типа :
$givenName = $user->getGivenName();
Обновление
setReturnType
функция принимает имя типа сущности API Microsoft Graph, в вашем примере это Model\User
указывает на тип, который нене принадлежит пространству имен Microsoft\Graph\Model
, и в результате ответ JSON не десериализовывается в экземпляр класса.
Вместо
setReturnType(Model\User::class)
попробуйте указать полное имя класса:
setReturnType(\Microsoft\Graph\Model\User::class)