102 lines
2.6 KiB
PHP
102 lines
2.6 KiB
PHP
<?php
|
|
require 'OutlookCalendar.php';
|
|
$config = require 'config.php';
|
|
|
|
$email = $_GET['email'] ?? null;
|
|
|
|
if (!$email || !file_exists($config['token_storage'])) {
|
|
die("Bitte logge dich zuerst über auth.php ein.");
|
|
}
|
|
|
|
$tokens = json_decode(file_get_contents($config['token_storage']), true);
|
|
if (!isset($tokens[$email])) {
|
|
die("Kein Token für diese E-Mail gefunden.");
|
|
}
|
|
|
|
$data = $tokens[$email];
|
|
|
|
$calendar = new OutlookCalendar(
|
|
$config['client_id'],
|
|
$config['client_secret'],
|
|
$config['redirect_uri'],
|
|
$data['access_token'],
|
|
$data['refresh_token']
|
|
);
|
|
|
|
// Optional: Token auffrischen, wenn abgelaufen
|
|
if (time() > ($data['time_saved'] + $data['expires_in'] - 60)) {
|
|
$calendar->refreshAccessToken();
|
|
$tokens[$email]['access_token'] = $calendar->getAccessToken();
|
|
$tokens[$email]['refresh_token'] = $calendar->getRefreshToken();
|
|
$tokens[$email]['time_saved'] = time();
|
|
file_put_contents($config['token_storage'], json_encode($tokens, JSON_PRETTY_PRINT));
|
|
}
|
|
|
|
if (isset($_GET['update'])) {
|
|
$eventId = $_GET['eventId'] ?? null;
|
|
if (!$eventId) {
|
|
die("Bitte eventId angeben.");
|
|
}
|
|
|
|
$updateData = [
|
|
"subject" => "Geändertes Meeting via PHP",
|
|
"start" => [
|
|
"dateTime" => "2025-07-25T15:00:00",
|
|
"timeZone" => "Europe/Berlin"
|
|
],
|
|
"end" => [
|
|
"dateTime" => "2025-07-25T16:00:00",
|
|
"timeZone" => "Europe/Berlin"
|
|
]
|
|
];
|
|
|
|
$result = $calendar->updateEvent($eventId, $updateData);
|
|
header('Content-Type: application/json');
|
|
echo json_encode($result, JSON_PRETTY_PRINT);
|
|
|
|
}
|
|
|
|
// Termin löschen
|
|
if (isset($_GET['deleteEvent'])) {
|
|
$eventId = $_GET['eventId'] ?? null;
|
|
if (!$eventId) {
|
|
die("Bitte eventId angeben.");
|
|
}
|
|
|
|
$result = $calendar->deleteEvent($eventId);
|
|
header('Content-Type: application/json');
|
|
echo json_encode($result, JSON_PRETTY_PRINT);
|
|
|
|
}
|
|
|
|
|
|
// Termin erstellen
|
|
if(isset($_GET['create'])){
|
|
$event = [
|
|
"subject" => "Test-Meeting via PHP",
|
|
"start" => [
|
|
"dateTime" => "2025-06-25T10:00:00",
|
|
"timeZone" => "Europe/Berlin"
|
|
],
|
|
"end" => [
|
|
"dateTime" => "2025-06-25T11:00:00",
|
|
"timeZone" => "Europe/Berlin"
|
|
],
|
|
"body" => [
|
|
"contentType" => "HTML",
|
|
"content" => "Meeting von OutlookCalendar PHP"
|
|
]
|
|
];
|
|
|
|
$response = $calendar->createEvent($event);
|
|
|
|
echo json_encode($response, JSON_PRETTY_PRINT);
|
|
}
|
|
|
|
$events = $calendar->getEvents(); // eigene Funktion in OutlookCalendar-Klasse
|
|
header('Content-Type: application/json');
|
|
echo json_encode($events, JSON_PRETTY_PRINT);
|
|
|
|
|
|
?>
|