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

Opencaching.de API, ein paar Vorschläge zu Funktionen?

poker4ace

Geonewbie
Hallo zusammen,
ich wollte mal ein kleines Feedback der Community hören:

Ich bin aktuell an einer Opencaching.de API dran und wollte mal von den Entwicklern unter uns ein paar Vorschläge zu möglichen Funktionen hören... Was würdet ihr euch wünschen? Was für Funktionen würdet ihr brauchen bzw. welche würdet ihr verwenden?


MfG
 

BriToGi

Geowizard
@Schrottie - mein Gedankengang war - ein Programmierer einer Seite die (im Moment) noch nicht online ist, sucht "gute Ideen" und fragt hier mal nach ;-)
 
OP
P

poker4ace

Geonewbie
Noch nicht online?
Ähm naja also wenn ich opencaching.de eingebe komm ich auf eine Seite die schon sehr lange online ist ;-) bzw. wenn du die API meinst: Online natürlich noch nicht bin ja auch noch dran - läuft allerdings auf meiner lokalen Opencaching-Spielwiese...

PS: Glückwunsch das war der tausendste Post in dem Sub-Forum hier :)
 

DunkleAura

Geowizard
  • json (weniger overhead als xml kram) und gpx ;)
  • falls es eine authentifizierung braucht (logs, caches erstellen, usw.) OAuth
  • keine doofe "seiten" abzurufen mit einer "session" sprich status los
  • brauchbare filter (cachetyp, grösse, diff, terr, wertung(empfehlung), eigene caches, eigene funde)
  • eine möglichkeit die abzufragenden felder einzuschränken (z.b. um an eine karte direkt weiter zu reichen)
  • bbox nicht nur radius kram /api/2/caches.(json|gpx)?bbox=west,south,east,north oder /api/2/caches.(json|gpx)?wpts=OC1,OC9,OC42,..
  • sinnvolle nutzung des http protokolls (abfrage GET, speichern POST)
  • einfache status aktualisierung für viele caches evtl. mit einem indikator ob essentielle daten innerhalb der letzten 7 tage geändert wurden also nur sowas /api/2/status.(json|gpx)?bbox=west,south,east,north oder /api/2/status.(json|gpx)?wpts=OC1,OC9,OC42,...

klare, einfache nutzungsbedingungen der API, da es ja nicht ganz "open" ist, auch wenn es wirklich kein problem ist eine erlaubnis zu kriegen. ;)

z.b. /api/2/caches.gpx?felder=code,name,lat,lon&bbox=west,south,east,north könnte man direkt an openlayers weiterreichen das json könnte man nutzen um gsak und vor allem mobil telefone knackig schnell zu versorgen.

ach lasst euch ein bisschen bei twitter und openstreetmap xapi inspirieren. :)
 

BriToGi

Geowizard
Ach Leute, war doch nur so ein Gedankengane bezogen auf dieses Thema hier:

http://www.geoclub.de/viewtopic.php?f=9&t=50316&hilit=opencaching.com

So, erstmal sorry dass ich den Thread mit OT zerspammt habe...

Und um noch mal konstruktiv zu werden - was hast Du denn genau vor? Eine eigene Weboberfläche, ein kompiliertes Programm, ...? Eine API ist ja nur "eine Schnittstelle", aber was ist das Gegenstück zu dem Du Wünsche suchst?
 
OP
P

poker4ace

Geonewbie
Hallo,

danke schonmal für deine Antworten - Was die Authenfizierung angeht, da hab ich mich noch nicht mitm Team abgesprochen, habe es aber vom programmiertechnischen her aber erstmal über einen API-Key gemacht, der jeder Funktionsanweisung beigefügt werden muss.

MfG

//EDIT
@Vorposter:
Eine API ist nur eine Schnittstelle und was die Entwickler mit ihr dann letztens umsetzen bleibt ihnen ja überlassen ... Ich stelle als Developer nur die reine Schnitstelle mit Dokumentation (aktuell nur auf Englisch) bereit. Die API ist eine php Datei, die man z.b. bezogen auf VisualBasic .NET so aufrufen kann:

Code:
Dim w As New System.Net.WebClient
Dim DString As String = w.DownloadString(New Uri("http://opencaching.tld/api/api.php?function=xyz&api=xxxxxxxxxxxx"))
Dim splt() As String = Split(DString, "<|>")

Mit splt(0) kannst du den return-code auslesen und mit splt(1) die Message die rauskommt... Aufgebaut ist die Antwort aktuell so:

Return-Code<|>Return-String

wobei das "<|>" als Splitter dient, also um den Code vom String zu trennen.
 
A

Anonymous

Guest
DunkleAura schrieb:
klare, einfache nutzungsbedingungen der API, da es ja nicht ganz "open" ist, auch wenn es wirklich kein problem ist eine erlaubnis zu kriegen.
<ot>Ich bin mal gespannt, ob diese ewige Leier auch bei opencaching.com immer wieder gespielt wird, oder ob man dort auf Anhieb begreift das ein "open" im Namen nicht unbedingt auf Selbstbedienungsladen hindeutet, sondern möglicherweise auf die Freiheit seine eigenen Caches ohne zuweilen sinnbefreite "Guidelines" zu listen bezogen ist. "Open" heißt, um das hier zum millionsten Mal zu erklären, noch lange nicht "Open Source"!</ot>
 

Jon Snow

Geocacher
public List<CacheInfo> SearchCaches(SearchCriteria someSearchCriteria): Suche nach caches. Gibt eine Liste von CacheInfos (Alle Info, die auf der http://opencaching.de/search.php?showresult Seite zurückgegeben werden) (SearchCriteria wie auf http://opencaching.de/search.php)

public Cache GetCache(cacheId aCacheId); Gibt genau einen Cache zurück (als Gpx?).

public List<LogEntry> getLogEntries(cacheId aCacheId, Integer aMaxNumberOfLogs): gibt einen List der neuesten aNumberOfLogs Logs zurück.

public List<ImageInfo> getImages(cacheId aCacheId): gibt einen List der Links zu Images und deren Beschreibung zurück.

public logCache(LogType aLogType, Date aLogDate, string aLogText). Logge den Cahce als gefunden, nicht gefunden, .....

und das ganze am besten als Webservice......
 
OP
P

poker4ace

Geonewbie
Hey Jon Snow -
Das ganze läuft als Webservice ab - sprich, dass du per WebRequest je nach Programmiersprache einen String abrufen musst ... Das erschien mir eine einfache, simple und doch nützliche Möglichkeit.


//Edit:
Nur schonmal gleich um Missverständnissen vorzubeugen: Die API ist trotz "OPENcaching" nicht OpenSource sondern ClosedSource. Wie die API-Keys verteilt werden ist nicht meine Entscheidung, das Thema werde ich bei der nächsten Teamsitzung ansprechen.
 

solar22

Geocacher
Für die Abfrage von Cacheinfos via GPX hab ich schon eine kleine Klasse OpenSource hier verfügbar gemacht vor ein paar Wochen:
https://github.com/solar22/Opencaching-PHPClass

Edit:
Und API Keys würd ich wenn möglich garnicht verwenden.
Die Variante einfach einen Abruf und Ergebnis bekommen ist wesentlich einfacher und komfortabler.
API Keys sind in meinen Augen ein Kontrollmechanismus der mehr Ressourcen frisst als das er Nutzen bringt.
 
OP
P

poker4ace

Geonewbie
Das "Problem" in dem Fall ist, dass sich z.b. mit der Funktion "user_check" die Login-Daten eines Benutzers überprüfen lassen sollen - In dem Fall wäre es für außenstehende ein leichtes mit Hilfe von API-Aufrufen einen Account ala Bruteforce zu knacken - Wir wollen schon das Sicherheitsrisiko unter Kontrolle halten.

Bzw: Die Sache OB es überhaupt API-Codes und unter welchen Bedingungen geben wird ist noch überhaupt nicht raus - Da warte ich das nächste Teameeting ab.
 

solar22

Geocacher
Ja gut die Sache mit dem Bruteforce stimmt...es wäre dann aber denkbar das man nach X Versuchen die IP sperrt oder den Nutzer für 24h aus der API-Login-Funktion bannt.
Aber gut, es kommt drauf an, wie die Keys vergeben werden.
Wäre nett, wenn du uns (mich) auf dem laufenden hällst ;) Danke im vorraus.
 

DunkleAura

Geowizard
poker4ace schrieb:
Das "Problem" in dem Fall ist, dass sich z.b. mit der Funktion "user_check" die Login-Daten eines Benutzers überprüfen lassen sollen - In dem Fall wäre es für außenstehende ein leichtes mit Hilfe von API-Aufrufen einen Account ala Bruteforce zu knacken - Wir wollen schon das Sicherheitsrisiko unter Kontrolle halten.

solar22 schrieb:
Ja gut die Sache mit dem Bruteforce stimmt...es wäre dann aber denkbar das man nach X Versuchen die IP sperrt oder den Nutzer für 24h aus der API-Login-Funktion bannt.
Aber gut, es kommt drauf an, wie die Keys vergeben werden.
Wäre nett, wenn du uns (mich) auf dem laufenden hällst ;) Danke im vorraus.

OAuth würde viele dieser probleme lösen, nur alle ressourcen zu schützen wäre auch irgendwie schwachsinnig.

das macht nicht einmal twitter und die haben sich endlich gewinn zu erzielen gross auf die flagge geschrieben.
(die ervorhebungen sind für schrottie damit er nicht gleich los poltern muss und versteht dass ich da von twitter sprach)
 
OP
P

poker4ace

Geonewbie
Gestern abend war Teamsitzung und was die Sache API angeht, ist folgendes Rausgekommen:

  • Der API Zugriff wird über einen Benutzernamen und ein Passwort laufen -> Also über einen Opencaching-Account. Wenn ein Entwickler also ein Programm zur Verfügung stellt, müssen die Benutzer für Aktionen, die über die API von OC ausgeführt werden sich mit ihren Accountdaten anmelden. Das ist nötig, damit wir falls mal irgendwas aus dem Ruder läuft immernoch Kontrolle drüber haben.
  • Bevor diese Anmeldung möglich ist, müssen im Benutzerprofil die Nutzungsbestimmungen der API akzeptiert werden. Das ist natürlich freiwillig, aber wer sie nicht akzeptiert wird die Funktionen der API halt auch nicht nutzen können.
  • Die API wird warscheinlich doch auf einem SOAP System basieren und nutzt die bereits vorhanden Logic-Klassen von OC

Weitere Details folgen

poker4ace
 

DunkleAura

Geowizard
poker4ace schrieb:
  • Der API Zugriff wird über einen Benutzernamen und ein Passwort laufen -> Also über einen Opencaching-Account. Wenn ein Entwickler also ein Programm zur Verfügung stellt, müssen die Benutzer für Aktionen, die über die API von OC ausgeführt werden sich mit ihren Accountdaten anmelden. Das ist nötig, damit wir falls mal irgendwas aus dem Ruder läuft immernoch Kontrolle drüber haben.
schön wäre da dann ein https zu erzwingen um es den network sniffern zu erschweren.

ganz allgemein würde ich mir das wünschen(!!!) auf der ganzen seite.
schon nur weil es ssl zertifikate für lau gibt, nein nicht cacert sondern
richtige, also eines das die meisten browser gut kennen.

was leider auch wieder eine kleine anforderung hat...
also entweder ssl auf:
Code:
$ host www.geocaching.de.
www.geocaching.de is an alias for www.geocaching.skylink.de.
www.geocaching.skylink.de has address 212.2.32.87
oder auf:
Code:
$ host www.opencaching.de.
www.opencaching.de has address 212.2.32.87
wobei ich da die priorität ganz auf opencaching.de legen würde, im interesse der account sicherheit.
(wäre ich eine böse zunge würde ich sagen das ist überflüssig wegen bla bla bla, denkt euch was aus...)

edit: okay, zur zeit liegt die priorität für ssl auf www.geocaching.de.
 
Oben