DSB-PlugIn/AddOn/Calender_Office365_User
olaf.braun 4f9737edad AddOn/Calender_Office365_User/readme.md aktualisiert 2025-06-25 19:39:50 +02:00
..
OutlookCalendar.php Add Office365 User Permission 2025-06-25 19:30:57 +02:00
auth.php Add Office365 User Permission 2025-06-25 19:30:57 +02:00
calendar.php Add Office365 User Permission 2025-06-25 19:30:57 +02:00
callback.php Add Office365 User Permission 2025-06-25 19:30:57 +02:00
config.php Add Office365 User Permission 2025-06-25 19:30:57 +02:00
readme.md AddOn/Calender_Office365_User/readme.md aktualisiert 2025-06-25 19:39:50 +02:00

readme.md

Outlook-Kalender Integration mit PHP

Dieses Projekt bietet eine einfache PHP-Integration zur Verwaltung von Terminen im Microsoft Outlook-Kalender über die Microsoft Graph API.

Funktionen

  • OAuth2-Authentifizierung über Microsoft Identity Plattform
  • Automatische Token-Aktualisierung (Refresh Token)
  • Erstellung, Bearbeitung und Löschen von Kalender-Terminen
  • Speicherung von Token pro Benutzer in tokens.json

Projektstruktur

  • calendar.php: Einstiegspunkt zur Erstellung eines Beispiel-Termins.
  • OutlookCalendar.php: Klasse für Interaktionen mit der Microsoft Graph API (Termine erstellen, aktualisieren, löschen, Token erneuern).
  • config.php: Konfigurationsdatei mit Client-ID, Secret, Redirect-URL und weiteren API-relevanten Parametern.

Voraussetzungen

  • PHP 7.4+
  • cURL-Erweiterung
  • Microsoft Azure AD App-Registrierung

Installation

  1. Repository klonen

    git clone <repo-url>
    cd <projektordner>
    
  2. Microsoft App registrieren

    • Gehe zu Microsoft Azure App Registrations
    • Registriere eine neue App
    • Konfiguriere:
      • Redirect URI: z.B. https://deine-domain.de/callback.php
      • API-Berechtigungen: offline_access, user.read, calendars.readwrite
    • Kopiere die Client-ID und das Client-Secret
  3. Konfiguration anpassen Bearbeite die Datei config.php:

    return [
        'client_id' => '<Deine Client-ID>',
        'client_secret' => '<Dein Client-Secret>',
        'redirect_uri' => '<Deine Redirect-URL>',
        'scopes' => 'offline_access user.read calendars.readwrite',
        ...
    ];
    
  4. Authentifizierung implementieren Stelle sicher, dass ein separater Login-Flow (auth.php) den OAuth2-Code verarbeitet und Tokens speichert (nicht im Projekt enthalten, aber notwendig).

Beispiel: Termin erstellen

  1. Nach erfolgreicher Authentifizierung kannst du calendar.php mit dem Parameter email aufrufen:

    https://deine-domain.de/calendar.php?email=example@example.com
    
  2. Dadurch wird ein Beispieltermin mit Start- und Endzeit im Outlook-Kalender des Benutzers erstellt.

Hinweise

  • Die Tokens werden in der Datei tokens.json gespeichert. Alternativ ist es möglich eine Dantenbank anzubinden.
  • Tokens werden automatisch aktualisiert, wenn sie abgelaufen sind.
  • Die Datei calendar.php enthält ein Beispiel für die Event-Erstellung. Für produktive Nutzung sollte eine validierte Benutzerinteraktion erfolgen.

Lizenz

MIT