Das AddOn Google Places für REDAXO 5 ermöglicht die Nutzung der Google Places API. Es ist möglich, Informationen wie z.B. Bewertungen (Reviews), Geodaten, Bilder, Öffnungszeiten, etc. zu einem Eintrag in Google Maps via API-Aufruf zu erhalten und Reviews in der eigenen Datenbank zu speichern und auszugeben.
Das AddOn benötigt einen gültigen API-Key. Der Key muss die PLaces-API zulassen (In jedem Fall die Einschränkung des
API-Keys auf bestimmte Domains oder IP-Adressen berücksichtigen, damit der Key nicht unbefugt benutzt werden kann). Auf
dieser Seite wird beschrieben, wie man einen API-Key generiert:
https://developers.google.com/maps/documentation/places/web-service/get-api-key
Damit man eine Location eindeutig identifizieren kann, benötigt man die ID. Über diesen Link kann man die ID
herausfinden:
https://developers.google.com/maps/documentation/javascript/examples/places-placeid-finder?hl=de
Gültiger API-Key und Place-ID müssen in die Konfiguration des AddOns eingetragen werden.
Mittels der Funktion gplace::get()
ist es möglich, direkt über die Google-API Informationen zum PLace in Google Maps
zu erhalten.
Mit dump(gplace::get());
kann man die Rückgabe sichtbar machen.
Einzelne Werte oder Arrays kann man wie folgt ansprechen:
gplace::get('name_des_wertes')
Entsprechend beispielhaft:
- Öffnungszeiten (Array) z.B.:
gplace::get('opening_hours')
- Maps-URL (string):
gplace::get('url')
- Adresse (string):
gplace::get('formatted_address')
Detailinfos zu den Google-Place-Attributen gibt es hier:
https://developers.google.com/maps/documentation/places/web-service/details#Place
Das AddOn ermöglicht den direkten Aufruf über die Google-API, was bei jedem Aufruf über den im AddOn hinterlegten
API-Key bei Google abgerechnet wird.
Außerdem kann man Reviews automatisch in einer eigenen Tabelle speichern und so Googles-API-Beschränkungen umgehen bzw.
die Anzahl der API-Calls reduzieren.
gplace::getAllReviewsFromGoogle()
Ruft Reviews zum Google Place direkt über die Google API ab (wsl. limitiert auf die letzten 5 Reviews). Pro Aufruf wird hier von Google ein API-Call registriert und abgerechnet.
Weiterhin ist es möglich die Reviews zu einem Google Place in einer eigenen REDAXO-Datenbank zu speichern und so häufige Aufrufe der Google-API zu vermeiden. Dies hat außerdem den Vorteil, dass die Beschränkung auf 5 Reviews bei einem "live" -API-Aufruf von Google mit der Zeit umgangen werden kann, da Reviews automatisch in der eigenen Datenbank via mitgeliefertem Cronjob gespeichert werden können.
Die Reviews befinden sich in der Tabelle mf_googleplaces_reviews
. Entweder greift man selbst per SQL darauf zu oder
nutzt die vom AddOn mitgelieferten Funktionen:
gplace::getAllReviews()
Ruft alle Reviews aus der eigenen DB ab und gibt ein Array zurück.
Bei der Installation des AddOns wurde eine Tabelle mit dem Namen mf_googleplaces_reviews
angelegt. Außerdem steht im
Cronjob-AddOn der Cronjob-Typ Google Places: Reviews per API-Call aktualisieren
zur Verfügung.
Der Cronjob ruft die Funktion gplace::updateReviewsDB()
aus und speichert die letzten 5 Reviews, die als Antwort von
Google kommen in der Tabelle. Anhand des Timestamps wird überprüft, ob der Review bereits in der Tabelle vorhanden ist
oder nicht. Entsprechend wird er gespeichert oder übersprungen.
Auf diese Weise wächst die Menge an gespeicherten Reviews in der eigenen Datenbank mit der Zeit an und man kann das Google-Limit umgehen, welches nur die letzten 5 Reviews zurückgibt.
Außerdem spart man so deutlich an API-Aufrufen, wenn man den Cronjob z.B. auf einmal pro Tag konfiguriert. Die API wird dann nur einmal pro Tag aufgerufen und nicht bei jeder Darstellung der Reviews.
Bei einer Deinstallation des AddOns wird auch die Tabelle mf_googleplaces_reviews
gelöscht und damit die Einträge
darin.
Falls man das AddOn bereits einige Zeit in Benutzung hat und sich mehr als die letzten 5 Reviews darin befinden, sind
diese verloren, da man über die Google-API nicht mehr auf die alten Reviews zugreifen kann.
DB-Backup nicht vergessen, wenn man die historischen Daten nicht verlieren möchte!