svendahlstrand / ica-api

👛 Inofficiell dokumentation över det API som backar appen ICA.
167 stars 29 forks source link

Shoppinglists not working #12

Closed carlsall closed 3 years ago

carlsall commented 4 years ago

I have been using this for a long time but recently anything with shoppinglists gives me error. GET /api/user/shoppinglists

AuthenticationTicket: [...]

404 - File or directory not found. 
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.

Cannot get my shoppinglists, create new, delete or add items to a shoppinglist. My last sucessful call was on September 12. Has this been changed from ICA side? Other calls works fine, e.g. GET /api/user/recipes, GET /api/user/stores.

Can you confirm if shoppinglists is working or is it just me? I have 3 shoppinglists currently.

svendahlstrand commented 4 years ago

I'm not using the API anymore, so I can't really tell, sorry. 😔 Someone has to sniff the traffic between the app and backend servers to see if something changed. One way to accomplish that is by using Charles Proxy. That's what I did, back in the day.

If something actually did happen to the API, I will gladly accept any pull request documenting the change.

carlsall commented 4 years ago

Thanks for reply. I am not a Mac user but I tried to install Fiddler. When inspecting traffic to ICA web pages there are requests like this: https://www.ica.se/api/shoppinglists?sortOrder=0 The response looks ok as a json list.

I cannot not just replace the url from 'handla.api.ica.se/api/user/shoppinglists' to 'www.ica.se/api/shoppinglists' and run curl command as before. 401 - Unauthorized: Access is denied due to invalid credentials.

My guess is that api is moved and the header Authorization is different. This is far beyond my capability.

It would be really nice to get this working again because it is a fantastic work and a useful tool. / Allan

svendahlstrand commented 4 years ago

I'd love to help, but unfortunately, I can't work for free right now. I have to prioritize paying clients. But there are more people out there using this unofficial API. Hopefully, someone will figure it out soon.

scriptcoded commented 3 years ago

Hey!

Did a bit of snooping around. Turns out Android Nougat and later prevents custom certificates for apps, but using an emulator running Android Mashmallow and mitmproxy I was able to get around the limitations.

Turns out they've just changed the API endpoint from /api/user/shoppinglists to /api/user/offlineshoppinglists. I'll take a deeper look at their API and raise a PR later.

Edit: They've changed the shopping list API quite drastically, so I'll have to look in to it a bit more to figure out all the details.