Mit der Google Calendar API kann man Google Kalenderdaten auslesen, anlegen und modifizieren.
Arnold Kegebein wird den Aufbau der API vorstellen, einschließlich von OAuth2.0, das für die Authentifizierung zum Zugriff auf Kalenderdaten nötig ist.
Im Vortrag wird ein neuer Kalender angelegt, Termine eingetragen und dann in FileMaker und dem Mac OS Kalender angezeigt.
Voraussichtlich wird eine Beispieldatenbank zur Verfügung gestellt, mit der einige Funktionen der API genutzt werden können.
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2017 - Google Calendar API und FileMaker by Arnold Kegebein
1. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
www.filemaker-konferenz.com
FileMaker spricht mit Google Calendar
Dipl.-Ing. (FH) Arnold Kegebein
Google Calendar API
2. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
• Studium der Technischen Informatik
• über 30 Jahre Datenbankentwicklung
• seit 2007 FileMaker Entwickler
• Autor für das FileMaker Magazin
• Sprecher auf der FileMaker Konferenz FMK
Dipl.-Ing. (FH) Arnold Kegebein
3. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
Google APIs
4. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
Google API Basics
• Application Programming Interface (API) für Google Services
• Unterstützung für verschiedene Programmiersprachen und -systeme
• .NET, Java, Javascript, Node.js, PHP, Python, Ruby
• Go, Google Apps Script
• Android, iOS
• REST API
• Quoten-gesteuert
• Autorisierung nötig
5. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
Projekt anlegen
• Zugriff über die API Console
• Dashboard / Library / Credentials
• Projektname (4 … 30 Zeichen)
• Projekt ID wird automatisch generiert
• Basiert auf dem Projektnamen
• Wird von Google für Statistiken und Abrechnungen verwendet
• Google API für Projekt freischalten
• Credentials anlegen
6. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
Credentials
• Sicherheit für den Anwender
• Sicherheit für das Projekt
• Google APIs erfordern / erlauben unterschiedliche Credentials
• API Key
• Service Account
• OAuth 2.0 Client ID
7. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
OAuth 2.0
• RFC 6749 – OAuth 2.0 Authorization Framework
• OAuth Provider
• Amazon, Google, Microsoft (mit FMS 16)
• Basecamp, Deutsche Telekom, Dropbox, Facebook, PayPal, Twitter, …
• Zugriff auf Anwenderdaten erfordert Zustimmung durch den Anwender
8. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
OAuth 2.0 Process
• Applikation benötigt OAuth 2.0 Credentials
• Access Token vom Google Authorization Server anfordern
• User meldet sich mit seinem Google Account an
• User gibt Erlaubnis, auf seine Daten zuzugreifen (user consent)
• Access Token mit einer API Abfrage an Google senden
• Ggfs. das Access Token erneuern (refresh)
9. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
OAuth 2.0 Process
Credentials beantragen
URL, Client ID + Secret
Access Token beantragen
User login & consent
Token Antwort
Mit Token Google API aufrufen
Token erneuern
Token response
App Google
Code validieren
Validation Antwort
Client ID
+ Secret
Code
Token
Token
10. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
Google Scope
• Scope ist von der verwendetet API abhängig
• Liste verfügbarer Scopes:
https://developers.google.com/identity/protocols/googlescopes
• Google Calendar API
• Kalenderdaten verändern:
https://www.googleapis.com/auth/calendar
• Kalenderdaten nur lesen:
https://www.googleapis.com/auth/calendar.readonly
11. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
REST API
• Google Calendar API verwendet RESTful Services
• GET – Daten holen/lesen
• POST – Daten erzeugen
• PUT – Daten ändern
• PATCH – Daten ändern mit Patch Semantik
• DELETE – Daten löschen / entfernen
• Idempotenz
• GET, PUT, DELETE
• Ergebniszustand des System bleibt gleich
• Response möglicherweise unterschiedlich
12. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
Google Calendar Basic Concept
Andreas Beverly
Andreas
Primär-
Kalender
Beverlys
Primär-
Kalender
Team
Kalender
Sport
Kalender
Status
Tracking
Kalender
Andreas
Jahresabschluss
Präsentation
Firmenfeier
Im Hotel Hafen
13. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
Calendar Resource Type
• ACL (Access Control List)
• CalendarList
• Calendars
• Colors
• Events
• Freebusy
• Settings
14. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
CalendarList
URLs relativ zu https://www.googleapis.com/calendar/v3
Listen POST /users/me/calendarList
Lesen GET /users/me/calendarList/calendarId
Einfügen POST /users/me/calendarList
Ändern PUT /users/me/calendarList/calendarId
Ausbessern PATCH /users/me/calendarList/calendarId
Löschen DELETE /users/me/calendarList/calendarId
16. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
Calendars
URLs relativ zu https://www.googleapis.com/calendar/v3
Leeren POST /calendars/calendarId/clear
Löschen DELETE /calendars/calendarId
Lesen GET /calendars/calendarId
Einfügen POST /calendars/
Ausbessern PATCH /calendars/calendarId
Ändern PUT /calendars/calendarId
17. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
Calendars Resource
{
"kind": "calendar#calendar",
"etag": etag,
"id": string,
"summary": string,
"description": string,
"location": string,
"timeZone": string
}
18. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Google Calendar API | Dipl.-Ing. (FH) Arnold Kegebein
Events
URLs relativ zu https://www.googleapis.com/calendar/v3
Löschen DELETE /calendars/calendarId/events/eventId
Lesen GET /calendars/calendarId/events/eventId
Einfügen POST /calendars/calendarId/events
Listen GET /calendars/calendarId/events
Ausbessern PATCH /calendars/calendarId
Ändern PUT /calendars/calendarId
Verschieben POST /calendars/calendarId/events/eventId/move
Lesen Wdhl GET /calendars/calendarId/events/eventId/instances