Warning
Uppdatering 17 april 2024: TyvÀrr har ICA gjort Àndringar i sitt API sÄ dokumentationen hÀr Àr inte lÀngre korrekt. Mer information finns i detta Àrende.
ICA har en smart app som lÄter dig se ditt saldo, dina erbjudanden, göra inköpslistor med mera. Appen Àr backad av ett API som jag har börjat dokumentera hÀr. Börja med att följa kom igÄng-guiden och ta sedan en titt pÄ API-referensen.
Dokumentationen Àr lÄngt ifrÄn komplett och du fÄr gÀrna hjÀlpa till, skicka bara en Pull Request.
HÀr visar jag hur du enkelt kommer igÄng genom att hÀmta information om ditt konto, saldo och dina rabatter.
Du behöver ett anvÀndarnamn (ditt personnummer) och det lösenord som skickas ut pÄ ditt bonusbesked med tidningen Buffé varje mÄnad. Orkar du inte vÀnta en mÄnad? Kontakta ICA sÄ skickar de lösenordet med post.
NÀr du testar API:et Àr det smidigt att ha en REST-klient. Jag rekommenderar:
- Postman (Chrome-app)
- rest-client (Java-baserad)
- curl (För terminal-nörden)
I denna guide anvÀnder jag curl
för att kunna visa exempel pÄ ett enkelt sÀtt.
Du kommer Ät API:et över HTTPS pÄ domÀnen handla.api.ica.se
.
Först och frÀmst behövs en AuthenticationTicket
som anvÀnds för att tala om
vem du Àr. Den fÄr du genom ett GET
-anrop till /api/login
. Skicka med
anvÀnarnamn och lösenord med hjÀlp av HTTP Basic authentication.
$Â curl -i -u 7001011234:567 https://handla.api.ica.se/api/login/
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
AuthenticationTicket: 8D66EA[..]
SessionTicket: 4F1E80[..]
LogoutKey: 59068e[..]
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Sun, 07 Apr 2013 18:44:24 GMT
Content-Length: 55
{"FirstName":"John","LastName":"Doe","Ttl":1200}
Bland svarets response headers hittar du din AuthenticationTicket
. Spar den
till nÀstföljande anrop.
Nu ha du allt som behövs för att stÀlla frÄgor till API:et. Prova ett GET
-anrop
till /api/user/cardaccounts
och skicka med din AuthenticationTicket
som en
request header.
$ curl \
-H 'AuthenticationTicket: 8D66EA[..]' \
https://handla.api.ica.se/api/user/cardaccounts/
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Instance: ABCVM4242A
Date: Mon, 15 Jun 2020 09:07:19 GMT
Content-Length: 166
{"CustomerNumber":123456789,"Cards":[{"Accounts":[],"CardTypeDescription":"ICA Kundkort utan betala","CardTypeCode":"90","MaskedCardNumber":"1234","Selected":false}]}
Svaret fÄr du i JSON. HÀr ser du till exempel de kundkort du har registrerade pÄ din anvÀndare.
Grattis, nu Àr du klar med guiden! Titta gÀrna pÄ API-referensen för att komma vidare. Dokumentationen Àr under uppbyggnad och du fÄr gÀrna hjÀlpa till.