Avatar billede dane022 Seniormester
Oprettet i dag kl. 08:43

MS Graph vis kalenderaftaler

Hej

Jeg 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
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester