From: Petter Reinholdtsen Date: Fri, 9 Dec 2011 07:56:49 +0000 (+0000) Subject: Start på info om bensinpris-API. X-Git-Url: https://pere.pagekite.me/gitweb/homepage.git/commitdiff_plain/bef2d690d43dd753b80c0379da6a51c32e8db861 Start på info om bensinpris-API. --- diff --git a/blog/draft/2011-12-bensinpris.txt b/blog/draft/2011-12-bensinpris.txt new file mode 100644 index 0000000000..1036520a3c --- /dev/null +++ b/blog/draft/2011-12-bensinpris.txt @@ -0,0 +1,103 @@ +Title: Bitfactors Bensinpris-API +Tags: norsk +Date: 2011-12-09 12:00 + +

For noen måneder 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 +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 +Dagens +Næringsliv og +Finnmark +Dagbladet bensinstasjoner som nekter å oppgi prisene sine på +telefon, slik at det ikke finnes en fornuftig måte å få tak i prisene +på uten å samle dem inn på stedet.

+ +

Jeg tok meg derfor litt tid for å revers-utvikle protokollen for å +gjøre den innsamlede informasjonen 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. 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". + +GetBanStatus + +echo UDID=Android-123456789012345 | POST http://www.bitfactory.no/Bensin/ver1.1.GetBanStatus.php + +Vet ikke helt hva dette API-kallet gjør. Navnet gjør at jeg tror den +rapporterer om telefonen med UDID oppgitt som argument er bannlyst fra +tjenesten. Bannlysning gjør antagelig at telefonen ikke kan brukes +til å registrere bensinpriser, men det er også mulig det blokkerer for +å se på priser. Eneste POST-argument er UDID, som ser 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'. + +PriserVedStasjoner + +echo 'stasjoner=810,364&day=0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjoner.php + +Dette kallet henter ut priser registrert på en eller flere +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. + +Resultatet som kommer tilbake er en kommaseparert liste for hver +enkelt stasjon, med <br> som skillemarkør mellom hver stasjon. +Ikke helt sikker på hva alle feltene er. Her er mine gjett: + +Felt 1: Bensinstasjons-ID +Felt 2: Antagelig en bensinpris, flyttall med punktum som desimalskille. +Felt 3: Et klokkeslett, format HH:MM? +Felt 4: Telefon-ID på formen Android-123456789012345 eller hex-kodet streng/MD5-sum +Felt 5: tall, uviss betydning. muligens relatert til day-verdien. +Felt 6: uviss betydning +Felt 7: uviss betydning +Felt 8: uviss betydning +Felt 9: uviss betydning +Felt 10: Samme som felt 2 +Felt 11: Samme som felt 3 +Felt 12: Samme som felt 4. +Felt 13: tall, uviss betydning. Kanskje det samme som felt 5? + +Jeg mistenker det egentlig er bensinstasjons-ID og deretter tre +blokker for bensin og/eller disel. Gjetter på at felt 6-9 er for +disel og derfor ikke var registrert for de bensinstasjonene jeg har +sjekket ut så langt. + +PriserVedStasjon + +echo 'id=736&day=0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjon.php + +Ser ut til å returnere informasjon for en enkelt bensinstasjon. +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". + +08_12_2011,12.52,10:35,Android-358697040191281,2, , , , ,12.52,10:35,Android-358697040191281,2 + +AllePriser + +echo day=0 | POST http://www.bitfactory.no/Bensin/ver1.1.AllePriser.php + +Returnerer av og til "NO RESULTS". 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.