]> pere.pagekite.me Git - homepage.git/commitdiff
Start på info om bensinpris-API.
authorPetter Reinholdtsen <pere@hungry.com>
Fri, 9 Dec 2011 07:56:49 +0000 (07:56 +0000)
committerPetter Reinholdtsen <pere@hungry.com>
Fri, 9 Dec 2011 07:56:49 +0000 (07:56 +0000)
blog/draft/2011-12-bensinpris.txt [new file with mode: 0644]

diff --git a/blog/draft/2011-12-bensinpris.txt b/blog/draft/2011-12-bensinpris.txt
new file mode 100644 (file)
index 0000000..1036520
--- /dev/null
@@ -0,0 +1,103 @@
+Title: Bitfactors Bensinpris-API
+Tags: norsk
+Date: 2011-12-09 12:00
+
+<p>For noen måneder siden lanserte Bitfactory en
+<ahref="http://www.bitfactory.no/bensinpris.html">mobilapp for å få
+tilgang til bensinpriser</a> 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.</p>
+
+<p>Utrolig nok er det i følge
+<a href="http://www.dn.no/energi/article2194526.ece">Dagens
+Næringsliv</a> og
+<a href="http://www.finnmarkdagblad.no/nyheter/article5323140.ece">Finnmark
+Dagbladet</a> 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.<p>
+
+<p>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.</p>
+
+<b>stasjonsDatabaseUpdateStamp</b>
+
+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 <tt>perl -e 'print scalar(localtime(1319145491)), "\n"'</tt>.
+Dagens verdi konverterer da til "Thu Oct 20 23:18:11 2011".
+
+<b>GetBanStatus</b>
+
+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'.
+
+<b>PriserVedStasjoner</b>
+
+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 &lt;br&gt; 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.
+
+<b>PriserVedStasjon</b>
+
+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
+
+<b>AllePriser</b>
+
+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 &lt;br&gt; og deretter en liste
+med stasjoner på samme format som PriserVedStasjoner.