From: Petter Reinholdtsen For noen måneder siden lanserte Bitfactory en
+ I fjor siden lanserte Bitfactory en
mobilapp for å få
-tilgang til bensinpriser på landets bensinstasjoner.
-Informasjonen appens brukere har samlet inn har så langt kun vært
+tilgang til bensinpriser på landets bensinstasjoner ved å samle
+inn prisene på dugnad ved hjelp av mobilapp-ens brukere.
+Informasjonen app-ens brukere har samlet inn har så langt kun vært
tilgjengelig for brukerne av app-ene, og API for å hente ut
informasjonen fra andre plattformer har ikke vært publisert. Da
løsningen kom spurte jeg utviklerne om de kunne publisere
API-dokumentasjon og de skulle se på saken, men det har ikke skjedd så
-langt.
Utrolig nok er det i følge
-
+bitfactorys informasjon ikke er like enkelt tilgjengelig.
Jeg tok meg derfor litt tid for å revers-utvikle protokollen for
-Bitfactorys mobilapp for å gjøre den innsamlede informasjonen
+Bitfactorys mobilapp for å gjøre den innsamlede informasjonen mer
tilgjengelig for flere. Protokollen bruker HTTP og normal
-forms-notasjon for POST. Her er API-kallene jeg har identifisert så
-langt.
stasjonsDatabaseUpdateStamp
GET http://www.bitfactory.no/Bensin/ver1.1.stasjonsDatabaseUpdateStamp
Vet ikke helt hva dette API-kallet gjør, men navnet gjør at jeg tror den rapporterer når listen over stasjoner sist ble endret. -Returverdien er et tall som pr. nå er 1319145491. Mitt gjett er at -dette er sekunder siden 1. januar 1970 som kan konverteres til en -leselig dato med perl -e 'print scalar(localtime(1319145491)), -"\n"'. Dagens verdi konverterer da til "Thu Oct 20 23:18:11 -2011".
+Returverdien er et tall som pr. 2011-12-09 er 1319145491 og +pr. 2012-05-28 er 1336420693. Mitt gjett er at dette er sekunder +siden 1. januar 1970 ala det en finner på Linux, som kan konverteres +til en leselig dato med perl -e 'print +scalar(localtime(1319145491)), "\n"'. Den første verdien +konverterer da til "Thu Oct 20 23:18:11 2011", mens den andre +konverteres til "Mon May 7 21:58:13 2012". -GetXMLDatabase +GetXMLDatabase
echo password=X43uP9KS_3ZqR | POST http://www.bitfactory.no/Bensin/GetXMLDatabase.php +
echo password=XYZXYZXYZXYZX | POST http://www.bitfactory.no/Bensin/GetXMLDatabase.php
Henter ned listen med stasjoner på XML-format. Argumentet er password som muligens følger med i programpakken og eventuelt genereres av app-en. Nedlasting med samme passord flere ganger ser -ikke ut til å fungere. Selve listen ser slik ut (klippet):
+ikke ut til å fungere. Innholdet er ca. 1600 stasjoner, men manglet +bensinstasjonen i min hjemkommune Ballangen da jeg sjekket, så den er +ikke komplett. Formatet på selve listen ser slik ut (klippet):<?xml version="1.0" encoding="UTF-8"?> @@ -83,7 +92,7 @@ ikke ut til å fungere. Selve listen ser slik ut (klippet): </STASJONSDATABASE>-GetBanStatus +
GetBanStatus
echo UDID=Android-123456789012345 | POST http://www.bitfactory.no/Bensin/ver1.1.GetBanStatus.php
@@ -96,7 +105,7 @@ ut til å være den unike ID-en til en mobil-enhet. Returnverdi er 'NO' for alle UDID-verdier jeg har testet. Gjetter på at alternativ returverdi er 'YES', men har ikke sett en slik verdi så langt. -PriserVedStasjoner +PriserVedStasjoner
echo 'stasjoner=810,364&day=0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjoner.php
@@ -104,8 +113,8 @@ returverdi er 'YES', men har ikke sett en slik verdi så langt. bensinstasjoner. Den tar to POST-argumenter, "stasjoner" som er kommaseparert liste over stasjons-IDer (numeriske), og "day" som bør settes til "0" for å få ut informasjon om priser. Usikker på hva -tallet betyr, men mistenker det har med hvor langt tilbake i tid det -skal hentes ut informasjon. +day-tallet betyr, men mistenker det har med hvor langt tilbake i tid +det skal hentes ut informasjon.Resultatet som kommer tilbake er en kommaseparert liste for hver enkelt stasjon, med <br> som skillemarkør mellom hver stasjon. @@ -132,7 +141,7 @@ Ikke helt sikker på hva alle feltene er. Her er mine gjett:
deretter tre blokker for 95-oktan bensin, 98-oktan bensin og disel. -PriserVedStasjon +PriserVedStasjon
echo 'id=736&day=0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjon.php
@@ -141,12 +150,12 @@ Formatet er dato på formen "08_12_2011" for 2011-12-08, og noe som ser ut som samme format som fra PriserVedStasjoner. For stasjoner der intet er registrert returnerer den "NO RESULTS". -AllePriser +AllePriser
echo day=0 | POST http://www.bitfactory.no/Bensin/ver1.1.AllePriser.php
Returnere liste med av alle stasjoner det er registrert oppdaterte -priser på siste 24 timer. Returnerer "NO RESULTS" når listen er tom. -Ellers returnerer den en dato på formen "Thursday_08_12_2011" skilt -med <br> og deretter en liste med stasjoner på samme format som -PriserVedStasjoner.
+priser på siste 24 timer (eller er det fra ca. midnatt dagen før?). +Returnerer "NO RESULTS" når listen er tom. Ellers returnerer den en +dato på formen "Thursday_09_12_2011" fulgt av <br> og deretter +en liste med stasjoner på samme format som PriserVedStasjoner.