MS Graph vis kalenderaftaler
HejJeg har brug for eksperthjælp. Jeg vil gerne lave en webbaseret teamkalender, der henter data fra teamets aftaler via MS Graph.
Siden ligger på en webserver og alle nødvendige services skulle være installeret via composer.
Filstrukturen er at der i selve mappen ligger .ENV fil indeholdende CLIENT_ID, CLIENT_SECRET, TENANT_ID og GRAPH_USER_SCOPES=https://graph.microsoft.com/.default.
Der ligger også en Vendor mappe, hvor der derunder er Microsoft mappe og derunder mapper til f.eks. Guzzle og phpleague. Der skulle også være installeret SDK V2.
Jeg har ikke styr på hvad der præcist skal til af underliggende services og ChatGPT kører i ring med sine forslag. I første omgang vil jeg bare gerne have det til ikke at fejle og så bliver næste step at hente og vise aftalerne.
Her er koden indtil videre:
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Dotenv\Dotenv;
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext;
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
$tenantId = $_ENV['TENANT_ID'] ?? '';
$clientId = $_ENV['CLIENT_ID'] ?? '';
$clientSecret = $_ENV['CLIENT_SECRET'] ?? '';
if (empty($tenantId) || empty($clientId) || empty($clientSecret)) {
throw new \Exception('TENANT_ID, CLIENT_ID og CLIENT_SECRET skal være sat i .env');
}
$tokenRequestContext = new ClientCredentialContext(
$tenantId,
$clientId,
$clientSecret
);
$scopes = ['https://graph.microsoft.com/.default'];
$authProvider = new GraphPhpLeagueAuthenticationProvider($tokenRequestContext, $scopes);
$requestAdapter = new GraphRequestAdapter($authProvider);
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes, requestAdapter: $requestAdapter);
try {
$me = $graphServiceClient->me()->get()->wait();
var_dump($me);
} catch (\Throwable $e) {
echo "Fejl ved kald til Graph: " . $e->getMessage();
}
Jeg får denne fejl:
Fatal error: Uncaught Error: Class "GraphPhpLeagueAuthenticationProvider" not found in C:\inetpub\wwwroot\lonforhandlinger\Kalender\Kalender_itkode.php:27
