OKAPI - Auth Level 3 im (bash-) script?

Du suchst die richtigen GPS-Geräte, Geocaching-Software oder sonstiges Geocaching-Zubehör? Tausche Dich hier mit anderen Usern aus.

Moderator: mic@

mambofive
Micro
Micro
Beiträge: 438
Registriert: 08.09.2014, 16:58

Angeregt durch das oc_car-Skript, habe ich mir ein kleines Script gehackt, das mir die Caches aus einer beliebigen "Bookmark"-Liste per OKAPI als gpx herunterlädt und als zip-File auf's Handy/GPSr schickt. Nix dolles, ein schneller Hack halt, macht aber (fast) was es soll.

Hintergrund: ich habe eine Handvoll Caches, die ich gerne aktuell auf dem Gerät haben möchte, die aber weder an einer bestimmten Strecke liegen, noch sonst gemeinsamen Suchkriterien entsprechen. Woanders könnte man sowas "Pocketquery auf Basis einer Bookmarklist" nennen.  ;D

Das funktioniert soweit auch schon ganz gut, aber bei gelösten Mysteries kommen die Koordinaten aus der persönlichen Notiz nicht mit. Dafür brauche ich wohl Level 3 Authorisierung...

Ich habe zu Level 3 Authorisierung nicht viel gefunden, die offizielle Doku und ein paar ältere Diskussionen hier im Forum. Hat jemand das schonmal in Perl- oder Shell-Scripten gemacht und kann mir hier kurz weiterhelfen? Mir fehlt die Info, wie ich an Consumer+Token Signature komme...

Wenn es die Allgemeinheit interessiert, kann ich das Skript gerne hier zur Verfügung stellen, bei Bedarf/Interesse bekomme ich das bestimmt auch unter Windows zum laufen...
Benutzeravatar
bohrsty
Administrator
Administrator
Beiträge: 1367
Registriert: 30.03.2012, 22:54

fuer perl kann ich dir als lektuere zum ideen finden, die folgenden perl-snapshots aus dem linux-magazin empfehlen...

http://www.linux-magazin.de/Ausgaben/2014/09/Perl-Snapshot
http://www.linux-magazin.de/Ausgaben/2013/12/Perl-Snapshot
http://www.linux-magazin.de/Ausgaben/2012/12/Perl-Snapshot
http://www.linux-magazin.de/Ausgaben/2011/07/Perl-Snapshot

...die beschaeftigen sich alle mit oauth und mindestens der erste auch mit level 3...
gruss Nils (bohrsty)

Bild
mambofive
Micro
Micro
Beiträge: 438
Registriert: 08.09.2014, 16:58

Das sieht vielversprechend aus, danke!
dl6hbo

[quote="mambofive"]
Wenn es die Allgemeinheit interessiert, kann ich das Skript gerne hier zur Verfügung stellen, bei Bedarf/Interesse bekomme ich das bestimmt auch unter Windows zum laufen...
[/quote]

Zwar bin ich nicht die Allgemeinheit, aber mich interessiert Dein Script.  Gern per E-Mail oder PN. Danke !
Schrottie

Mich interessiert es ebenso und sichert sich andere. Wird das Script evtl auf github oder ähnlichem veröffentlicht?
mambofive
Micro
Micro
Beiträge: 438
Registriert: 08.09.2014, 16:58

[quote="Schrottie"]
Wird das Script evtl auf github oder ähnlichem veröffentlicht?
[/quote]
Puh, im Moment sind es nur ein paar Zeilen, das lohnt sich noch nicht. Ich schau mir in den nächsten Tagen nochmal die oauth-Geschichte an, wenn das funktioniert kann ich es gerne hier oder woanders hochladen.
ka_be

:-)

Meinst du mit "beliebiger Bookmark Liste" eine Textdatei auf deinem Rechner? Oder eine online Liste auf oc
de?
mambofive
Micro
Micro
Beiträge: 438
Registriert: 08.09.2014, 16:58

Ersteres -  eine lokale Textdatei, die die Cache-Codes enthält.
Ohne die Autorisierung ist das ein Zehnzeiler, aber ich möchte auch die Personal Notes...
mambofive
Micro
Micro
Beiträge: 438
Registriert: 08.09.2014, 16:58

So, anbei eine erste Version meines Scripts. Level-3 Autorisierung klappt jetzt auch...

Falls jemand es ausprobieren möchte, hier eine Kurzanleitung:
  • Das Script läuft aktuell nur unter Linux
  • zip-File runterladen und auspacken
  • Aufrufen mit "oc2go.pl". Beim ersten mal wird das Skript sich beschweren über fehlende Perl-Module. Die können etnweder über die Linux-Distro nachinstalliert werden, oder von www.cpan.org runtergeladen werden. Ich benutze zum nachinstallieren immer das Tool "cpan" (z.B. "cpan -i File::Path"), weil das auch die Abhängigkeiten auflöst. Wenn man die Pakete nicht als root installiert, muss man ggf. die Umgebungsvariable PERL5LIB  setzen. 
  • Wenn alle Module vorhanden sind, liefert der Aufruf von "oc2go.pl" eine Meldung "Missing required parameter consumer_key...". Das bedeutet, dass die Autorisierung an die opencaching.de-OKAPI noch fehlt (ich schau nochmal, dass hier eine vernünftige Meldung kommtn...)
  • Jetzt kann man die "Installation" aufrufen mit "oc2go.pl -i". Dabei wird ein Verzeichnis ".oc2go" im Homeverzeichnis angelegt und eine erste Konfig-Datei erzeugt. Anschliessend startet die Autorisierung. Das Skript gibt eine URL aus, die man in den  Browser kopieren muss und dann dort dem Skript Zugriff auf den opencaching.de-Nutzer geben muss. Vom der opencaching.de-OKAPI bekommt man dann einen Key zurück, den man beim Skript wieder eingibt. Dieser Schritt muss nur einmal durchgeführt werden.
  • Nach erfolgreicher "Installation" kann man mit "oc2go.pl -f bookmarks.txt" Caches aus einer Bookmarkliste runterladen. Die Datei bookmarks.txt ist eine Textdatei, in der zeilenweise Cache-Codes stehen. Siehe oc2go_bookmarks.txt als Beispiel, die Caches dort sind die Safaris von dem "Bodensee-S"...
  • Wenn alles klappt, sollte das Skript jetzt die Caches runterladen und eine Datei oc_caches.zip erzeugen. Da sind die runtergeladenen Caches drin, die kann man jetzt aufs GPSr kopieren...
Hinweise:

Durch die Level-3 Autorisierung werden auch Personal Notes mit runtergeladen. Eigene Koordinaten kommen irgendwie noch nicht mit, das klappt aber bei c:geo auch nicht immer. Evtl. hat da die OKAPI noch ein Problem, das schaue ich mir nochmal genauer an.

In den Listings stehen die Infos über Attribute, Empfehlungen, Kretys etc. mit im HTML-Listing. Das ist für mich ein Vorteil gegenüber gpx-Files die man direkt aus der Webseite runterlädt, weil ich die Caches nach Locus importiere und dort die oc-spezifischen Sachen (noch) nicht richtig unterstützt sind.

Ich lasse das Script als cron-job laufen und schiebe das Ergebnis-zip-file dann auf die Dropbox. Die kann ich dann auf dem Handy importieren und habe immer aktuelle Listings dabei...

Was ich noch vorhabe:

Wenn das mit den eigenen Koordinaten nicht klappt, kann man auch die persönliche Notiz nach Texten wie "Final: N 51° ... E 008°..." scannen und dann Wegpunkte mit ins Listing schreiben, ggf. auch die Koordinaten des Caches direkt korrigieren. Locus/geocaching4Locus machen das auch so - für mich sehr praktisch...

Evtl. könnte man auch Infos über die Kretys im Cache direkt von geokrety.org runterladen und ins Listing mit einbauen.

Das ganze ist nur für den Eigengebrauch entstanden. Wer will, kann es gerne testen und benutzen. Für Anregungen bin ich offen, aber haut mir das Skript bei Nichtgefallen bitte nicht gleich um die Ohren... Ich mag Perl eigentlich überhaupt nicht, aber das Modul für die Oauth-Geschichte ist halt in Perl...

Wer Fragen zum Setup hat, einfach melden.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
dl6hbo

Erst einmal Danke für Dein Script !  Testen ist irgendwann ab morgen dran.
mambofive
Micro
Micro
Beiträge: 438
Registriert: 08.09.2014, 16:58

Falls jemand Interesse hat:
anbei die aktualisierte Version des kleinen Skripts. Jetzt werden auch korrigierte Koordinaten (z.B. bei Mysteries) mit runtergeladen und der Cache dorthin verschoben.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
dl6hbo

Danke für Dein Script !
Schrottie

Super Sache das, ich werde da gleich mal ein paar Worte in meinem Blog zu verfassen. :)
mambofive
Micro
Micro
Beiträge: 438
Registriert: 08.09.2014, 16:58

[quote="Schrottie"]
Super Sache das, ich werde da gleich mal ein paar Worte in meinem Blog zu verfassen. :)
[/quote]

In dem Fall ist ein github-Repository wohl nicht verkehrt: https://github.com/ebillen/oc2go
Schrottie

[quote="mambofive"]
In dem Fall ist ein github-Repository wohl nicht verkehrt: https://github.com/ebillen/oc2go
[/quote]

In der Tat!  :D

Achja: http://blog.dafb-o.de/opencaching-to-go/
Zuletzt geändert von Schrottie am 24.11.2014, 13:16, insgesamt 1-mal geändert.
Antworten