Integration mit Google Kalender
(API v.2)

Dieser Artikel behandelt die Google Calendar API v2, die nicht mehr verwendet wird. Informationen zur aktuellen Google Calendar API v3 finden Sie hier.

Erste Schritte

Bevor Sie mit der Synchronisierung beginnen, stellen Sie sicher, dass die php_curl.dll-Erweiterung aktiviert ist.

Falls sie nicht aktiviert ist, aktivieren Sie sie, indem Sie das Semikolon in dieser Zeile in Ihrer php.ini-Datei, die von Ihrem Webserver verwendet wird, entfernen:

;extension=php_curl.dll

Nachdem Sie bestätigt haben, dass die Erweiterung aktiv ist, können Sie mit der Einrichtung fortfahren.

Um den Scheduler mit Google Kalender zu synchronisieren, gehen Sie wie folgt vor:

  • Laden Sie das 'gCal_proxy_v2'-Paket herunter.
  • Entpacken Sie das Paket in das Stammverzeichnis Ihres Webservers.

Serverseitig:

  • Öffnen Sie die Datei '01_proxy.php' im Verzeichnis [rootFolder] gCal_proxy server mit einem Texteditor. Diese Datei enthält den Standardcode zur Proxy-Initialisierung:
<?php
 
$email = "";
$pass = "";
$cal = "";
 
include('google_proxy.php');
$calendar = new GoogleCalendarProxy($email, $pass, $cal);
//$calendar->map("location", "details");
$calendar->connect();
 
?>
  • Weisen Sie den 3 Variablen Werte zu und lassen Sie den Rest des Codes unverändert.
    Die zu setzenden Variablen sind:
    • $email – Ihr Gmail-Benutzername;
    • $pass – Ihr Gmail-Passwort;
    • $cal – der Name Ihres Google Kalenders.

Überprüfen Sie sorgfältig, ob die Werte korrekt sind. Wenn beispielsweise der Name Ihres Kalenders test@googlemail.com ist, führt die Verwendung von test@gmail.com zu einem Fehler.

  • Speichern Sie die Datei nach den Änderungen.

Clientseitig:

  • Öffnen Sie die HTML-Datei, in der Ihr Scheduler initialisiert wird. Falls Sie noch keinen Scheduler eingerichtet haben, erstellen Sie eine neue HTML-Datei im Stammverzeichnis Ihres Webservers.
  • Initialisieren Sie den Scheduler wie gewohnt (Details siehe How to Start).
  • Laden Sie Google Kalender-Ereignisse in den Scheduler mit der Methode load. Setzen Sie den Parameter auf den Pfad der soeben aktualisierten Datei '01_proxy.php'.
scheduler.load("../gCal_proxy/server/01_proxy.php");
  • Initialisieren Sie dataProcessor für die bidirektionale Synchronisation.

  • Fügen Sie eine weitere Skriptdatei hinzu.

<script src="../gCal_proxy/sample/codebase/dhtmlxdataprocessor.js"></script>
  • Übergeben Sie den Pfad zur gleichen Datei '01_proxy.php' als Parameter an den Konstruktor.
var dp =  scheduler.createDataProcessor("../gCal_proxy/server/01_proxy.php");
dp.init(scheduler);//'scheduler' ist der Name der Scheduler-Instanz.

Die Synchronisierung ist damit abgeschlossen. Ein einsatzbereites Beispiel finden Sie in der Datei 'sample.html' im Verzeichnis [rootFolder] gCal_proxy sample.

Export

Um Ereignisse aus Google Kalender in Ihre Datenbank zu exportieren, gehen Sie wie folgt vor:

  1. Öffnen Sie die Datei '03_export.php' im Verzeichnis [rootFolder] gCal_proxy server mit einem Texteditor.
  2. Setzen Sie die Werte für die Variablen und lassen Sie den Rest des Codes unverändert.
    Die zu setzenden Variablen sind:
    • $email – Ihr Gmail-Benutzername;
    • $pass – Ihr Gmail-Passwort;
    • $cal – der Name Ihres Google Kalenders;
    • $db_host – Hostname oder IP-Adresse Ihres MySQL-Servers;
    • $db_user – Ihr MySQL-Benutzername;
    • $db_pass – Ihr MySQL-Passwort;
    • $db_name – der Name Ihrer MySQL-Datenbank;
    • $db_table – der Name Ihrer Datenbanktabelle;
  3. Speichern Sie Ihre Änderungen und schließen Sie die Datei.
  4. Führen Sie das Skript '03_export.php' aus.
  5. Nach dem Ausführen des Skripts werden die Ereignisse aus Google Kalender in der angegebenen Datenbanktabelle gespeichert.

Die Funktion 'export()' gibt die Anzahl der aus Google Kalender exportierten Datensätze zurück.

Import

Um Ereignisse aus Ihrer Datenbank in Google Kalender zu importieren, gehen Sie wie folgt vor:

  1. Öffnen Sie die Datei '02_import.php' im Verzeichnis [rootFolder] gCal_proxy server mit einem Texteditor.
  2. Setzen Sie die Werte für die Variablen und lassen Sie den Rest des Codes unverändert. Die Variablen sind die gleichen wie beim Export.
  3. Speichern Sie Ihre Änderungen und schließen Sie die Datei.
  4. Führen Sie das Skript '02_import.php' aus.
  5. Nach dem Ausführen des Skripts werden die Ereignisse aus der Datenbank zu Google Kalender hinzugefügt.

Die Funktion 'import()' gibt die Anzahl der in Google Kalender importierten Datensätze zurück.

Wie man zusätzliche Informationen zum Ereignis überträgt

Google Kalender und Scheduler verwenden unterschiedliche Feldsets. Um Ereignisinformationen korrekt zu synchronisieren (beim Import oder Export), ist es notwendig, entsprechende Felder zwischen den beiden Kalendern zuzuordnen.

Standardmäßig besteht folgende Zuordnung zwischen Google Kalender und Scheduler:

Google Kalender -> Scheduler

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

Sie können auch zusätzliche Google Kalender-Felder einbeziehen:

Feld Beschreibung
canEdit gibt an, ob der angemeldete Benutzer das Ereignis bearbeiten kann. Mögliche Werte: '0' oder '1'
created das Erstellungsdatum des Ereignisses im Google Kalender-Format
details die Details des Ereignisses
updated das Datum der letzten Aktualisierung des Ereignisses im Google Kalender-Format
location der Ort des Ereignisses
status der aktuelle Status des Ereignisses: cancelled (Ereignis abgesagt), confirmed (Ereignis bestätigt), tentative (Ereignis vorläufig geplant)

Um zusätzliche Informationen einzubeziehen, gehen Sie wie folgt vor:

Serverseitig:

  • Öffnen Sie die entsprechende Datei im Verzeichnis [rootFolder] gCal_proxy server je nach Aktion: '01_proxy.php' für die Synchronisierung, '02_import.php' für den Import oder '03_export.php' für den Export.
  • Verwenden Sie die Methode map(), um die gewünschten Felder zu verknüpfen. Um z. B. den Ort des Ereignisses zusammen mit Text, Start- und Endzeit einzubeziehen, fügen Sie diese Zeile hinzu:
$calendar->map("location", "place");
  • location – der Feldname im Google Kalender;
  • place – der entsprechende Feldname im Scheduler. Sie können hier einen beliebigen Namen wählen.

  • Speichern Sie Ihre Änderungen und schließen Sie die Datei.

Clientseitig:

  • Öffnen Sie die HTML-Datei, in der der Scheduler initialisiert wird.
  • Fügen Sie Folgendes zur Konfiguration des Schedulers hinzu:

In den Lightbox-Bereichen:

scheduler.config.lightbox.sections=[
    ...
    {name:"placeField", height:50, map_to:"place", type:"textarea"}
];

Der Wert von map_to muss mit dem auf der Serverseite angegebenen Namen übereinstimmen (im Beispiel oben "place").

  • Definieren Sie das Label für den neuen Abschnitt:
scheduler.locale.labels.section_placeField = 'Place';

Ersetzen Sie "placeField" nach dem Unterstrich durch den Namen Ihres Abschnitts.

  • Speichern Sie Ihre Änderungen und schließen Sie die Datei.
Nach oben