DSB-PlugIn/AddOn/Calender_Office365_User/calendar.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);
?>