Victorie!

Na een ganse nacht zitten prutsen met OAuth en Fire Eagle, ben ik er eindelijk in geslaagd om mijn eigen locatie IT-gewijs te pakken te krijgen.

Even een situatie-schets: op mijn Blackberry kan ik een applicatie van Navizon gebruiken om mijn locatie ongeveer te weten. Ongeveer, want er zit geen GPS in mijn Blackberry. De localisatie gebeurt dus via de cell-masten, en zit er bijgevolg een kilometer ofzo naast. Goed genoeg om dus een idee te hebben van waar ik ongeveer ben.

Nu is het zo dat Navizon zijn API’s (de interface om programmatorisch bepaalde gegevens op te halen van een bepaalde dienst) niet gratis ter beschikking stelt. Wat Navizon wel kan doen, is de locatie van de user doorspelen naar Fire Eagle. Van Fire Eagle zijn de API’s wel vrij toegankelijk. Probleem: het programma moet geauthoriseerd worden door de Fire Eagle gebruiker, zodat Fire Eagle weet dat het programma de locatie van de gebruiker mag lezen en/of update.

Die authorisatie in orde krijgen bleek, voor mij althans, niet zo evident te zijn. De implementatie ervan in Ruby geraakte niet ver, gezien er nogal wat libraries moesten geïnstalleerd worden, en dat stak al gauw in de prak (desondanks de package manager ‘gem‘). Dan maar Java geprobeerd, wat op termijn een goede beslissing leek te zijn omdat Blackberry Java-based is.

De authorisatie met Fire Eagle voorloopt volgens OAuth, een protocol waarbij de gebruiker een bepaalde applicatie kan authoriseren om gebruik te maken van een service waar de gebruiker ook “klant” is. Helaas was de Java library/package voor OAuth slecht gedocumenteerd.

Gelukkig is er Android: op een Android-minded blogpost ben ik code tegengekomen die zo ongeveer doet wat ik nodig had. Al wou ik enkel mijn locatie lezen, niet updaten. Maar dat was dan snel uitgeklaard, gezien de toegang tot de broncode van OAuth (POST werd GET, parameters voor de OAuthMessage mochten op null gezet worden).

Na enkele (nachtelijke) uren gepruts, ben ik dus deze middag eindelijk eigenaar geworden van een XML bestand waarin mijn locatie in geuren en kleuren beschreven stond. Nu toch fine-tunen van de applicatie, er een deftig nut aan geven, en veel prutsen. 🙂

Main program code

Main program code

Voorlopig nog geen grafische interface.

Voorlopig nog geen grafische interface.

Besluit:

  1. web-apps reiken manieren aan om ermee te interfacen,
  2. deze manieren zijn niet altijd even goed gedocumenteerd,
  3. authorisatie is a bitch en
  4. de aanhouder wint.

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit /  Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit /  Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit /  Bijwerken )

Verbinden met %s