• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Groundspeak API

goldensurfer

Geoguru
Das Thema gehört eigentlich in "Software", aber da gibt's kein "allgemein". Deswegen ist es jetzt hier ;)

Mal ein paar Worte zur API von geocaching.com... irgendwo in den Weiten der Website hatte ich gelesen, dass Entwickler von "third party software" über eine API auf die Groundspeak-Cachedatenbank zugreifen können und einfach mal hingegschrieben. Heute kam tatsächlich eine Antwort. Das Procedere, welches notwendig ist, um auf die API zuzugreifen, möchte ich Euch kurz schildern.

Grundsätzlich ist es wohl so, dass man über eine Web-Schnittstelle Daten aus der Groundspeak-DB abholen kann. Dazu benötigt man einen Key, den man beim Aufruf mit übergibt. Die Datenbank schaut dann nach, ob es den Key gibt und ob entsprechende Berechtigungen dazu existieren und liefert dann die Daten zurück - nachdem der jeweilige Nutzer der Remote-Software sich authentifiziert hat, denn groundspeak möchte natürlich wissen, ob da ein zahlender Kunde kommt oder ein "free member". Ersterer bekommt mehr Details als Letzterer - so wie im richtigen Leben, also auf der Website.

1. Als erstes bekommt man mal ein (Word)Formular, das sogenannte "API enrollment form" sowie ein license agreement als PDF. In dem Formular werden die Kontaktdaten (Name, Firmenname, Adresse...) und der GC-Alias abgefragt. In einem weiteren Feld (description of the services you wish to provide) soll man schildern, was man überhaupt machen möchte, d.h. was das Programm irgendwann mal können soll, für welches man den API-Key braucht.

2. Wenn Groundspeak die Idee gefällt, dann bekommt man einen Test-Key und wird erstmal "trusted developer". Dass man als solcher nicht über die API die Cache-Datenbank absaugen darf, wird gleich mal im ersten Anschreiben herausgestellt (scraping the website for geocaching.com data is not permitted in any application or service for basic or premium members), in den Terms of use steht's dann natürlich auch noch mal drin.
Mit dem Key kommt man erstmal auf einen Test-Server, auf dem natürlich nur eine Auswahl an Caches zur Verfügung steht - wir verwenden ja auch nicht unsere komplette Produktivdatenbank auf den Entwicklungsrechnern.

3. Jetzt kann's ans Entwickeln gehen, wenn man es bis hierher geschafft hat, und das ist noch gar nicht so klar, denn gleich ziemlich am Anfang in den terms of use steht, in welchen Fällen Groundspeak das Anmeldeformular ablehnen kann - nämlich wenn denen die Idee hinter der zu entwickelten Applikation nicht passt (...if your application is determined to be unsuitable.) Unsuitable ist, da Groundspeak eine amerikanische Firma ist, natürlich alles was im entferntesten an Sex erinnert, und natürlich auch gewaltverherrlichend oder diskriminierend ist u.s.w. Irgendwie hat mich dieser Abschnitt ein bisschen an die iPhone-Stores erinnert, oder wie die Website heißt, auf der Apple bestimmt, welche Software auf den überteuerten Telefonen laufen darf.

4. Jetzt geht's ans programmieren. Dabei immer schön drauf achten, dass in der Applikation der Hinweis "Powered by Geocaching Live" vorkommt, dass der Standarduser keine Premium-Features zu sehen bekommt, und dass die Abfrage-Limits eingehalten werden. Wie hoch diese Limits sind, legt Groundspeak nach gutdünken fest. (The limits on calls per user per method will be made available using the API call: GetApiLimits. These limits are subject to change by Groundspeak from time to time.). Derzeit existieren wohl die folgenden Einschränkungen für Standard-User: diese dürfen pro Tag maximal 3 Geocache-Beschreibungen anschauen; zuvor sind sie mit einem von Groundspeak zur Verfügung gestellten Text über diese Einschränkung zu gängeln - und zwar vor jedem der drei Caches (Prior to viewing the full details for each of the 3 geocache listings, the Basic Member must be notified of this restriction...). Vermutlich wird ihnen der Text auch noch die premium membership in schillerndsten Farben darstellen. Bietet das Programm eine Suchfunktion an (logisch tut es das, macht ja sonst kaum Sinn), dann soll das Suchergebnis bei Basic-Members nur Tradis zeigen. Immerhin - sie dürfen, wenn sie den Waypoint kennen, über die API auch Nicht-Tradis anschauen - natürlich insgesamt nur 3 am Tag.

5. Dass die Applikation hinterher störungsfrei funktioniert, ist nicht gesagt, denn Groundspeak kann den API-Service oder Teile davon ohne Ankündigung abdrehen. (Groundspeak may change, suspend, or discontinue any portion of the Geocaching.com API, or any service offered in connection with the Geocaching.com API, at any time).

6. Jetzt hat man also sein Programm fertig gebaut, getestet, und will es der Gemeinde zur Verfügung stellen. Doch bevor man das darf, möchte Groundspeak das Programm erst sehen und testen. Und wenn das erfolgt ist, dann bekommt man den ersehnten production key, mit dem sich dann auf richtigen Daten arbeiten läßt. Wenn denen dann das Programm nicht gefällt, gibt's den Key einfach nicht. Und wenn Groundspeak irgendwann in der Zukunft an dem Programm was zu mäkeln hat, muss der entsprechende Zugriff natürlichg ebenfalls entfernt werden (You will promptly remove any API integration from your application or website if requested to do so by Groundspeak)

Ich habe jedenfalls die Idee wieder verworfen, ein Programm zu schreiben, welches die API verwendet.
 

Angrentil

Geomaster
Hört sich teilweise zwar etwas gruselig an, wird aber schon erfolgreich benutzt. Wer also so eine API mal "live und in action" sehen will, kann einen Blick auf die GSAK 8 Betaversion werfen. Das macht aber sicher in erster Linie nur für PMs Sinn. ;)

Ich finde: es lohnt sich. :D
 

DunkleAura

Geowizard
@goldensurfer diese forms sind gestern auch in meinem postfach aufgeschlagen.
heute werde ich die mal durcharbeiten und schauen was ich dann mache.
ich persönlich hoffte ja auch etwas mehr einfachheit, so ähnlich wie bei twitter, app "registrieren" keys erhalten.

das man die limits von der api kriegt stört mich weniger, ist bei twitter auch so, da gibt es nicht nur eine tageslimite sondern auch stündliche und noch eine andere.
nur bei twitter kriegt man bei jeder anfrage im header das aktuelle "restguthaben" mitgeteilt, wenn man mittels der dedizierten limit abfrage eine limit abfrage macht zählt dies natürlich auch als abfrage.

ich fände es einfach bescheuert wenn man seitens GS gezwungen würde so idiotische zeitsperren zwischen n abfragen einzubauen wie es der clyde macht. aber falls das eine forderung seitens GS wäre, wäre es halt so.
 

SammysHP

Moderator
Teammitglied
Als Mitentwickler von c:geo denke ich natürlich auch drüber nach. Es laufen auch schon länger Gespräche mit Groundspeak deswegen. Mein Standpunkt ist aber: API allerhöchstens als (optionale) Alternative. Wenn man sich nämlich an die Bedingungen bindet, kann man auch gleich "Powered by Groundspeak" und "Copyright by Groundspeak" in das Programm schreiben.

Die Registrierung läuft über OAuth (also wie bei Twitter) und lässt sich (mit einigen Programmzeilen extra) natürlich auch elegant in das Programm einbinden (vorausgesetzt, es ist nicht open source, dann die beiden Keys (consumer und secret) dürfen nicht weitergegeben werden.
 
OP
goldensurfer

goldensurfer

Geoguru
Okay, dann werde ich meine weiteren Programmieraktivitäten doch lieber auf eine selbst per PQs gepflegte Datenbank aufbauen - wie bisher eben schon.
 
OP
goldensurfer

goldensurfer

Geoguru
Nunja, ich brauchs nicht mehr wirklich. Ich hab die PQs, die werden alle schön in ne Datenbank eingelesen und kurz vor ner Tour nochmal mit einer aktuellen PQ vom Zielgebiet upgedated, damit kam ich immer ganz gut hin.
 
Oben