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