Integration mit Google Calendar

Laden Sie das Paket hier herunter.

Einleitung

In diesem Kapitel wird erklärt, wie Sie den Scheduler und Google Calendar synchron halten.

Die Synchronisierung funktioniert in beide Richtungen, sodass alle Änderungen, die im Scheduler oder im Google Calendar vorgenommen werden, an beiden Orten sichtbar sind.

  • Wenn dasselbe Ereignis in beiden Anwendungen geändert wird, wird die aktuellste Änderung synchronisiert.
  • Das Löschen eines Ereignisses in einem Kalender entfernt es aus beiden.
  • Die Synchronisierung ist auf den primären Google Calendar beschränkt; sekundäre Kalender sind nicht enthalten.
  • Alle Ereignisse aus Scheduler und Google Calendar werden gemeinsam synchronisiert – Sie können keine einzelnen Ereignisse zur Synchronisierung auswählen.
  • Standardmäßig importiert der Scheduler den Text und die Dauer (Start- und Endzeit) des Ereignisses aus Google Calendar. Weitere Details zum Ereignis können bei Bedarf abgerufen werden. Mehr dazu finden Sie unten.

Erste Schritte

Um die Integration einzurichten, gehen Sie wie folgt vor:

  1. Melden Sie sich in der Google API-Konsole unter https://console.cloud.google.com/cloud-resource-manager an.
  2. Klicken Sie auf die Schaltfläche "Create new project", um den Bildschirm "Google apis" zu öffnen.
  3. Aktivieren Sie den Dienst "Calendar API" im Tab "Services".
  4. Gehen Sie zum Tab "API Access" und klicken Sie auf "Create an OAuth2.0 Client ID". Dadurch wird das Formular "Create Client ID" geöffnet.
  5. Füllen Sie das Formular aus und klicken Sie auf "Next", um fortzufahren.
  6. Wählen Sie die Option "Service account" und klicken Sie auf "Create client ID". Dadurch werden Ihre private Schlüsseldatei, die Client ID und die E-Mail-Adresse generiert – bewahren Sie diese für später auf.
  7. Melden Sie sich im Google Calendar an, den Sie mit der App verwenden möchten, und teilen Sie ihn mit der im Google API-Console erstellten E-Mail-Adresse (aus Schritt 1).
  8. Suchen und speichern Sie die Kalender-ID aus den Kalendereinstellungen.

Server-seitig:

  1. Erstellen Sie eine PHP-Datei mit dem Namen "data.php" mit folgendem Code:
    <?php
     
    include('../src/google_proxy.php');
     
    $calendar = new GoogleCalendarProxy(
        "<account>@developer.gserviceaccount.com",
        "<account>.apps.googleusercontent.com",
        file_get_contents("<key>"),
        "<calendar id>"
    );
     
    $calendar->connect();
    ?>

wobei

  • <account> die E-Mail-Adresse ist, mit der Sie sich in der Google API-Konsole anmelden.
  • <key> der Pfad zu Ihrer privaten Schlüsseldatei ist.
  • <calendar_id> die Kalender-ID ist, die Sie aus den Google Calendar-Einstellungen erhalten haben.

Client-seitig:

1. Öffnen Sie die HTML-Datei mit dem initialisierten Scheduler oder richten Sie diesen wie gewohnt ein (siehe dazu den Artikel How to Start).

2. Laden Sie Google Calendar-Ereignisse mit der Methode load in den Scheduler. Der erste Parameter ist der Pfad zur Datei 'data.php', der zweite das Datenformat, das 'json' sein sollte.

scheduler.load("./data.php", "json");

3. Initialisieren Sie dataProcessor, um die bidirektionale Synchronisierung zu ermöglichen (überspringen Sie diesen Schritt, wenn Sie nur einen Lesezugriff benötigen).

var dp =  scheduler.createDataProcessor("./data.php");
dp.init(scheduler);
dp.setTransactionMode("POST", false);

Wie man zusätzliche Informationen zum Ereignis übergibt

Standardmäßig liest der Scheduler alle Felder von Google Calendar, verarbeitet jedoch aktiv nur vier davon. Die übrigen werden als schreibgeschützt behandelt.

Folgende Zuordnung besteht zwischen Google Calendar- und Scheduler-Feldern:

Google Calendar -> Scheduler

  • id -> id
  • title -> text
  • startTime -> start_date
  • endTime -> end_date

Um zusätzliche Eigenschaften zu verarbeiten, können Sie die Datei "src/google_proxy.php" aus dem Paket anpassen
(Download-Link).

Nach oben