Musterbeispiel "Termin in einen Google

Werbung
Sonstiges
Musterbeispiel "Termin
in einen Google-Kalender
eintragen" (OAuth 2.0)
Problem:
In einem Terminierungsprojekt für Aussendienstmitarbeiter oder für einen
Mitarbeiter soll ein Termin aus AG-VIP SQL heraus in einem Google-Kalender
eingetragen werden oder ein bestimmter Google-Kalender soll in einem Webcontrol
auf einer Ansicht oder einem Gesprächsleitfaden zu Ansicht gebracht werden.
Lösung:
Die in diesem Artikel vorgestellten Dateien enthalten 2 mögliche Lösungen für die
Erstellung eines Kalendereintrags.
1. Anzeige und Eintrag eines Termins mittels einer Ansicht.
2. Eintrag eines Termins mittels einem Hilfsmittel.
Hinweise:
Für die Nutzung dieses Beispiels ist ein Google-Account erforderlich.
Sie können einen Google-Account kostenlos unter der URL
https://www.google.com/accounts/NewAccount anlegen.
Des weiteren muss ein Projekt unter der URL https://console.developers.google.com
angelegt werden, worüber dann die Authentifizierung für den Google Kalender
geregelt wird. Wie dieses Projekt eingerichtet wird, ist im Abschnitt "Projekt zur
oAuth 2.0 Authentifzierung einrichten" beschrieben.
Um die Muster allgemein lauffähig zu halten, wurden keine Datenbankbezüge für
den Termineintrag integriert. Wenn Sie jedoch ein Feld vom Typ "Datum/Zeit" in der
Adresstabelle anlegen und dem Control "startdatum" auf der Ansicht "GoogleKalender" eine Datenbindung mit diesem Datenbankfeld zuweisen, wird Ihr Termin
in AG-VIP SQL und im Google-Kalender geführt.
Wird später natürlich der Termin im Google-Kalender verschoben, werden die
Daten im Terminkalender in unserem Datenfeld in AG-VIP SQL nicht automatisch
aktualisiert.
Terminänderungen sollten daher wenn möglich auch im AG-VIP SQL entsprechend
aktualisiert werden.
Die wichtigsten Felder für die Nutzung dieser Beispiele sind
Für die Variante mit der Ansicht:
(Google-Emailadresse, Passwort und Dateipfad zum AG-VIP SQL
Installationsverzeichnis)
Application.GlobalData("gmail"), Application.GlobalData("gpass") und
Application.Globaldata("GCSINI").
Seite 1 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Für die Variante mit dem Hilfsmittel:
Sonstiges
(Google-Emailadresse und Dateipfad zum AG-VIP SQL Installationsverzeichnis)
Application.GlobalData("GoogleMail") und Application.Globaldata("GCSINI")
Sie müssen vor der erfolgreichen Nutzung des Beispiels mit den Benutzerdaten des
Google-Accounts gefüllt werden.
Zur Nutzung beider Varianten muss das Makroinclude "Standard1" in AG-VIP SQL
importiert sein:
http://kb.grutzeck.de/content/9/221/de/funktionsbibliothek-standard1.html
Projekt zur oAuth 2.0 Authentifzierung einrichten:
Nach dem Sie ein Google Konto eingerichtet haben, melden Sie sich mit Ihren
selben Daten auf der Developer Console an:
(https://console.developers.google.com)
Danach wechseln Sie zu "Enable and manage APIs" bzw. "APIs aktivieren und
verwalten":
Seite 2 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Sonstiges
Direkt im Anschluss erscheint der Dialog zum Anlegen eines neuen Projektes. In
diesem vergeben Sie einen Projektnamen z.B. "AG-VIP SQL" und bestätigen unten
die Nutzungsbedingungen:
Nach der Erstellung des Projektes, muss nun die "Calendar API" aktiviert werden:
Seite 3 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Sonstiges
Danach noch auf "Enable API" bzw. "API aktivieren" klicken:
Nun werden Sie aufgefordert die "Credentials" bzw. die "Anmeldedaten"
einzutragen.
Drücken Sie jedoch NICHT auf den im Text empfohlenen Schalter "Go to
Credentials" bzw. "Zu den Anmeldedaten" sondern klicken Sie links auf
"Credentials" bzw. "Zugangsdaten":
Seite 4 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Sonstiges
Drücken Sie dann auf "New credentials" bzw. "Neue Anmeldedaten" um ein
Dropdown-Menü zu öffnen. Dort wählen Sie dann "OAuth client ID" bzw.
"OAuth-Client-ID" aus:
Nun klicken Sie auf den Schalter "Configure consent screen" bzw.
"Zustimmungsbildschirm konfigurieren":
Seite 5 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Sonstiges
Geben Sie einen Produktnamen z.B. "AG-VIP SQL" sowie eine E-Mail Adresse ein und
speichern die Einstellung ab.
Hinweis: Es hat sich herausgestellt, dass die Namensauflösung von Google nicht
richtig funktioniert. Der Produktname sollte sich daher vom Projektnamen
unterscheiden, da sonst ein Fehler beim Versuch einen Termin einzutragen
auftreten könnte.
In dieser Beschreibung ist der Projektname und Produktname identisch (AG-VIP
SQL).
Dies sollte vermieden werden!
Seite 6 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Sonstiges
Nun wählen Sie die Option "Other" bzw. "Andere" aus, vergeben einen Namen z.B.
AG-VIP SQL und drücken auf "create" bzw. "Erstellen":
Seite 7 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Sonstiges
Direkt nach dem Erstellen der Client ID wird Ihnen folgender Dialog angezeigt:
Die "Client-ID" und der "ClientSecret Key" bzw. "Clientschlüssel" wird später
beim ersten Ausführen des Google Kalender Hilfsmittels benötigt. Daher sollten Sie
diese kopieren und in einer Text bzw. Word Datei zwischenspeichern.
Falls Sie den Dialog nicht angezeigt bekommen oder Sie zu einem späteren
Zeitpunkt diese Informationen erneut benötigen sollten, können Sie diese in der
Developer Console über die "Credentials" bzw. "Zugangsdaten" auf dem von
Seite 8 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Ihren festgelegten Projektnamen zugreifen:
Sonstiges
1. Anzeige und Eintrag eines Termins mittels einer Ansicht:
Dieses Beispiel zeigt exemplarisch wie ein Termin aus Feldern einer Ansicht in AGVIP SQL direkt in einem Google-Kalender eingetragen werden können.
Ausserdem wird der entsprechende Googlekalender in einem Webcontrol zur
Anzeige gebracht.
Um das Beispiel zu nutzen müssen Sie gültige Google-Zugangsdaten und der
Installationspfad von AG-VIP SQL im Formular "Marko beim Laden" hinterlegen.
Danach ist das Beispiel sofort einsatzbereit sofern die OAuth 2.0 Authentifizierung
Seite 9 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
beim ersten Start eingetragen wurden.
Sonstiges
2. Eintrag eines Termins mittels einem Hilfsmittel:
Dieses Beispiel zeigt wie ein Termineintrag mit einem Hilfsmittel in einen
Googlekalender vorgenommen werden kann.
Typischerweise wäre dies ein Hilfsmittel das mit einer Reaktion "Termin erstellt"
auch in einem vorhandenen Terminierungsprojekt verwendet werden kann, wenn
die Synchronisation des Blackberry oder Outlook-Kalenders des
Aussendienstmitarbeiters mit einem Google-Kalender vorgenommen wird.
So kann nun mit einem "normalen" Terminierungsprojekt auch gleich der
Termineintrag in dem entsprechenden Googlekalender des
Aussendienstmitarbeiters vorgenommen werden.
Um das Beispiel auszuprobieren müssen Sie nach der Installation, im Makro des
Hilfsmittels, die Werte für die Zugangsdaten für den Google-Account und den
Installationspfad von AG-VIP SQL hinterlegen.
Danach ist das Beispiel sofort einsatzbereit sofern die oAuth 2.0 Authentifizierung
beim ersten Start eingetragen wurden.
Natürlich gibt es für diese Musterbeispiele noch unzählige Anwendungsszenarien.
Einrichtung:
1. Laden Sie die ZIP-Datei am Ende des Artikels herunter und entpacken Sie
die Dateien typischerweise im Ordner <AGVIP SQL
Installationsverzeichnis>\Samples (bpw. C:\Programme\AG-VIP
SQL\Samples)
2. Öffnen Sie AG-VIP SQL und wechseln Sie im Arbeitsbereich auf die
Administration
3. Klicken Sie auf "Ansichten". Der Formulareditor öffnet sich.
4. Klicken Sie im Formulareditor im Menü auf "Datei" -> "Import" und wählen
Sie die Datei "Google-Kalender.agfrm"
5. Klicken Sie dann auf "Makro beim Laden" und ergänzen Sie die
Zugangsdaten für den Google-Kalender in Zeile 7 und 8:
Application.GlobalData("gmail")="<Ihre Emailadresse>"
Application.GlobalData("gpass")= "<Ihr Passwort>"
6. Hinterlegen Sie zusätzlich noch einen im Netzwerk für jeden Benutzer
erreichbaren Pfad für die "GoogleCalendarSettings.ini"
Application.Globaldata("GCSINI") = "V:\AG-VIP
SQL\GoogleCalendarSettings.ini"
7. Speichern Sie nun die Ansicht im gewünschten Kontext
8. Schließen Sie den Formulareditor und wechseln Sie im
Administrationsbereich auf "Verschiedenes" -> "Hilfsmittel"
9. Importieren Sie nun die Datei "Termin in Google Kalender eintragen.agtool".
10. Klicken Sie auf das Hilfsmittel "Termin in Google Kalender eintragen" ->
Seite 10 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
"Ändern" und wechseln SieSonstiges
auf die Registerkarte Makro
11. Klicken Sie hier auf "Ändern" und ergänzen Sie die Zugangsdaten für den
Google-Kalender in Zeile 6:
Application.GlobalData("GoogleMail")="<Ihre Emailadresse>"
12. Hinterlegen Sie zusätzlich noch einen im Netzwerk für jeden Benutzer
erreichbaren Pfad für die "GoogleCalendarSettings.ini"
Application.Globaldata("GCSINI") = "V:\AG-VIP
SQL\GoogleCalendarSettings.ini"
Nun können Sie die Beispiele bereits ausprobieren.
Anpassungsmöglichkeiten:
Sie können die folgenden Werte vorgeben:
1. Zugangsdaten:
Application.GlobalData("gmail")="[email protected]" (bzw. GoogleMail)
Application.GlobalData("gpass")= "Passwort"
2. Netzwerk-Pfadangabe der Ini-Datei in der die Zugangsinformationen
gespeichert werden
(Die Datei muss für jeden Benutzer im Netzwerk mit Schreibrechten
erreichbar sein)
Application.Globaldata("GCSINI") = "V:\AG-VIP
SQL\GoogleCalendarSettings.ini"
3. Wert für das Startdatum
Application.GlobalData("startdate") = ""
4. Wert für die Startzeit
Application.GlobalData("starttime") = ""
5. Wert für das Enddatum
Application.GlobalData("enddate")= ""
6. Wert für die Endzeit
Application.GlobalData("endttime")= ""
7. Wert für den Titel Eintrag.
Application.GlobalData("title")="Testeintrag im Googlekalender für " &
ActiveAddress.Fields("NameLast").value
8. Wert für die Beschreibung des Termins im Googlekalender
Application.GlobalData("description")="Termin bei " &
ActiveAddress.Fields("NameSalutation").Value & _
" " & ActiveAddress.Fields("NameLast").Value & ", " & _
ActiveAddress.Fields("Name1").Value
9. Wert für den Ort an dem der Termin stattfinden soll. Hier wir als Beispiel die
Adresse des Datensatzes verwendet. Könnte aber auch = "Hanau" sein.
Application.GlobalData("place")= ActiveAddress.Fields("Street").Value & _
", " & ActiveAddress.Fields("ZipCode").Value & " " &
ActiveAddress.Fields("City").Value
10. Wert ob der Termin als privater Termin oder öffentliche Termin eingetragen
wird. Mögliche Angaben sind "private" oder "public"
Seite 11 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Application.GlobalData("visibility")
= "private"
Sonstiges
11. Angabe der Zeitzone (Wird benötigt um die Zeitkorrektur zu ermitteln)
Weitere Zeitzonen können von folgender URL ausgelesen werden:
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
Application.GlobalData("timezone") = "Europe/Berlin"
12. Wert ob die Zeit im Kalender als Belegt oder Frei angezeigt wird. (Mögliche
Werte false oder true)
Application.GlobalData("timeconsumption") = true
Im Beispiel für das Hilfsmittel kann mit dem Wert "Termindauer" (Termindauer=1)
ein Wert für die Terminlänge eingetragen werden. (In Stunden)
Im Beispiel mit der Ansicht wird die Termindauer in Zeile 19 festgelegt. Dabei wird
für die Endzeit die Startzeit +1 Stunde festgelegt.
Sie können natürlich jederzeit beliebige Vorgabewerte als Text oder aus
Datenbankfeldern definieren.
OAuth 2.0 Konfiguration:
Beim ersten Aufruf eines Kalenders muss die oAuth 2.0 Authentifizierung
konfiguriert werden.
Dazu wird die "Client-ID" und der "Client Secret Key" bzw. "Clientschlüssel"
benötigt, sowie eine Anmeldung im Google Konto zur Bestätigung der Freigabe des
Kalenderzugriffs:
Eingabe der Client-ID:
Eingabe des Client-Schlüssels:
Seite 12 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Sonstiges
Beim Login für die Zugriffsbestätigung ist es wichtig zu überprüfen, ob der richtige
Google Account angemeldet ist.
Cookies von Ihrem Browser könnten evtl. sich mit einem anderen Google Konto
automatisch anmelden.
Wenn Sie sichergestellt haben, dass Sie mit dem richtigen Google Konto
angemeldet sind, drücken Sie auf "Allow" bzw. "Zulassen":
Anschließend erscheint ein Authentifizierungscode, welcher automatisch von dem
Hilfsmittel ausgelesen und der Browser anschließend geschlossen wird:
Seite 13 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Sonstiges
Falls Sie zulange für die Bestätigung gebraucht haben sollten, wird Ihnen das
Hilfsmittel folgenden Dialog anzeigen, welchen Sie je nach dem mit "Ja", "Nein" oder
"Abbrechen" bestätigen:
Die Informationen werden dann in der GoogleCalendarSettings.ini hinterlegt und
müssen daher nur beim ersten Aufruf angegeben werden.
Änderungslog:
21.10.2016
Wenn Google eine Auswahl von mehreren E-Mail-Accounts anbietet, wird der
entsprechende Account ausgewählt
automatisches Ausloggen beim Speichern der Ansicht
Seite 14 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
23.06.2016
Sonstiges
Erweiterung um die Angabe eines Proxy-Servers
07.01.2016
Durch die Voraussetzung von Google absofort nur über die OAuth 2.0
Authentifizierung Zugriff auf z.B. den Google Kalender zu erhalten, wurde
das Hilfsmittel komplett neu programmiert. Die Konfigurationsparameter
wurden beibehalten und jediglich um einige erweitert.
Eindeutige ID: #1353
Verfasser: Peter Brandt [Grutzeck Software GmbH]
Letzte Änderung: 2016-10-21 10:11
Seite 15 / 15
(c) 2017 Grutzeck Software GmbH <[email protected]> | 18.05.2017 11:47
URL: http://kb.grutzeck.de/content/31/352/de/musterbeispiel-termin-in-einen-google_kalender-eintragen-oauth-20.html
Powered by TCPDF (www.tcpdf.org)
Herunterladen