69 lines
1.8 KiB
PHP
69 lines
1.8 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));
|
|
}
|
|
|
|
|
|
// ➤ Beispiel: Termin anlegen
|
|
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 "<pre>";
|
|
print_r($response);
|
|
echo "</pre>";
|
|
|
|
echo "<hr/>";
|
|
}
|
|
|
|
$events = $calendar->getEvents(); // eigene Funktion in OutlookCalendar-Klasse
|
|
header('Content-Type: application/json');
|
|
echo json_encode($events, JSON_PRETTY_PRINT);
|
|
|
|
|
|
?>
|