AddOn/Calender_Google_User/exampelV2/test.php hinzugefügt
This commit is contained in:
parent
9f6841052f
commit
00128ecde8
|
|
@ -0,0 +1,100 @@
|
||||||
|
<?php
|
||||||
|
// =======================
|
||||||
|
// Konfiguration
|
||||||
|
// =======================
|
||||||
|
define('CLIENT_SECRET', '...........'); // CLIENT_SECRET (Value)
|
||||||
|
define('CLIENT_ID', '........-....-....-....-............'); //DEINE-CLIENT-ID
|
||||||
|
define('TENANT_ID', '........-....-....-....-............'); //DEIN-TENANT-ID
|
||||||
|
define('REDIRECT_URI', 'https://meinserver.com/diese_datei/test.php');
|
||||||
|
define('SCOPES', 'offline_access Calendars.ReadWrite User.Read');
|
||||||
|
define('TOKEN_DIR', __DIR__ . '/tokens');
|
||||||
|
|
||||||
|
if (!is_dir(TOKEN_DIR)) mkdir(TOKEN_DIR);
|
||||||
|
|
||||||
|
|
||||||
|
// =======================
|
||||||
|
// Start
|
||||||
|
// =======================
|
||||||
|
session_start();
|
||||||
|
require_once 'GraphCalendarUserAuth.php';
|
||||||
|
|
||||||
|
// Initialisiere Auth-Klasse mit Client-ID, Secret, Tenant-ID & Redirect-URI
|
||||||
|
$graph = new GraphCalendarUserAuth(CLIENT_ID, CLIENT_SECRET, TENANT_ID, REDIRECT_URI);
|
||||||
|
|
||||||
|
|
||||||
|
// =======================
|
||||||
|
// Login-Flow
|
||||||
|
// =======================
|
||||||
|
if (isset($_GET['login'])) {
|
||||||
|
header('Location: ' . $graph->getLoginUrl());
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// =======================
|
||||||
|
// Callback nach erfolgreichem Login
|
||||||
|
// =======================
|
||||||
|
if (isset($_GET['code'])) {
|
||||||
|
$user = $graph->handleCallback($_GET['code']);
|
||||||
|
$_SESSION['user_id'] = $user['id'];
|
||||||
|
$_SESSION['user_name'] = $user['displayName'];
|
||||||
|
$_SESSION['user_email'] = $user['email'];
|
||||||
|
header('Location: test.php');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// =======================
|
||||||
|
// Logout
|
||||||
|
// =======================
|
||||||
|
if (isset($_GET['logout'])) {
|
||||||
|
session_destroy();
|
||||||
|
header('Location: test.php');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// =======================
|
||||||
|
// Wenn eingeloggt → Access Token automatisch prüfen/erneuern
|
||||||
|
// =======================
|
||||||
|
if (isset($_SESSION['user_id'])) {
|
||||||
|
try {
|
||||||
|
// Automatische Prüfung + Refresh, falls nötig
|
||||||
|
$accessToken = $graph->getValidAccessToken($_SESSION['user_id']);
|
||||||
|
|
||||||
|
echo "<h1>Willkommen, {$_SESSION['user_name']}</h1>";
|
||||||
|
echo "<p><strong>Email:</strong> {$_SESSION['user_email']}</p>";
|
||||||
|
echo '<p><a href="?logout">Abmelden</a></p>';
|
||||||
|
echo '<p><strong>Zugriffstoken:</strong><br><code>' . htmlspecialchars($accessToken) . '</code></p>';
|
||||||
|
|
||||||
|
// Termine anzeigen
|
||||||
|
$events = $graph->getCalendarEvents(5);
|
||||||
|
echo "<h2>Deine nächsten Termine:</h2><ul>";
|
||||||
|
foreach ($events as $event) {
|
||||||
|
echo "<li>" . htmlspecialchars($event['subject']) . " (" . $event['start']['dateTime'] . " - " . $event['end']['dateTime'] . ")</li>";
|
||||||
|
}
|
||||||
|
echo "</ul>";
|
||||||
|
|
||||||
|
// Termin erstellen
|
||||||
|
$newEvent = $graph->createCalendarEvent(
|
||||||
|
"Test-Termin",
|
||||||
|
"2025-11-12T10:00:00",
|
||||||
|
"2025-11-12T11:00:00",
|
||||||
|
"Beschreibung für den Termin"
|
||||||
|
);
|
||||||
|
echo "<pre>Neuer Termin: ";
|
||||||
|
echo json_encode($newEvent);
|
||||||
|
echo "</pre>";
|
||||||
|
|
||||||
|
// Termin löschen (Event-ID aus $events oder $newEvent)
|
||||||
|
$deleted = $graph->deleteCalendarEvent($newEvent['id'] ?? '');
|
||||||
|
echo $deleted ? "Termin gelöscht" : "Löschen fehlgeschlagen";
|
||||||
|
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "<p><strong>Fehler:</strong> {$e->getMessage()}</p>";
|
||||||
|
echo '<p><a href="?login">Neu anmelden</a></p>';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Wenn kein Benutzer eingeloggt ist → Login-Link anzeigen
|
||||||
|
echo '<a href="?login">Mit Microsoft anmelden</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
Loading…
Reference in New Issue