Hallo,
wir werden bald auch Mitglied der MS Sekte und wechseln zu O365. Um unsere bisherigen intern wunderbar funktionierenden Dienste weiter nutzen zu können, bin ich auf der Suche, wie ich einen Kalendereintrag für einen Benutzer über die Microsoft Graph API erstellen kann.
Die APP-Registrierung ist erfolgt und die Berechtigung erteilt. Der Zugriff bspw. um den Benutzernamen über die Mail-Adresse zu bekommen funktioniert auch schonmal.
Der Code dafür sieht bspw wie folgt aus:
require_once '../vendor/autoload.php'; // Path to Microsoft Graph SDK and OAuth2 Client library
use Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext;
use Microsoft\Kiota\Abstractions\ApiException;
use Microsoft\Graph\Core\Authentication\GraphPhpLeagueAuthenticationProvider;
use Microsoft\Graph\GraphServiceClient;
$tokenContext = new ClientCredentialContext(
$tenantId,
$clientId,
$clientSecret);
$graphServiceClient = new GraphServiceClient($tokenContext);
try {
$user = $graphServiceClient->users()->byUserId('max.mustermann@example.com')->get()->wait();
echo "User Name = {$user->getDisplayName()} <br/>";
} catch (ApiException $ex) {
echo "Fehler: ".$ex->getError()->getMessage();
exit;
}
Aber der folgende Versuch einen Kalendereintrag zu schreiben
$requestBody = new Event();
$requestBody->setSubject('Let\'s go for lunch');
$body = new ItemBody();
$body->setContentType(new BodyType('hTML'));
$body->setContent('Does noon work for you?');
$requestBody->setBody($body);
$start = new DateTimeTimeZone();
$start->setDateTime('2024-02-22T12:00:00');
$start->setTimeZone(new DateTimeZone('Europe/Berlin'));
$requestBody->setStart($start);
$end = new DateTimeTimeZone();
$end->setDateTime('2024-02-22T13:00:00');
$end->setTimeZone(new DateTimeZone('Europe/Berlin'));
$requestBody->setEnd($end);
$location = new Location();
$location->setDisplayName('Harry\'s Bar');
$requestBody->setLocation($location);
$result = $graphServiceClient->users()->byUserId('max.mustermann@example.com')->events()->post($requestBody, $requestConfiguration)->wait();
erzeugt den Fehler Fatal error: Uncaught Error: Class 'Event' not found
Was habe ich falsch gemacht oder vergessen? In Beispiele von MS sind da leider nicht erleuchtend.
LG KevinB