In my app i use Picasso library to load images from urls. It is a nicely working easily importable and usable library, and just do the thing i need.
However, today it stopped working, and not while developping it is stopped working on a compiled apk.
So after i searched and searched for the reason i just found this buggy thing:
I use facebook graph urls to load profile pictures.
Here is one like: profile pictre,
the link is actually “http://graph.facebook.com/1464090949/picture?type=large“
But it is redirecting to: https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg
Of course, both of url calls working in a browser, and you can see the profile picture.
However when i test both links with Picasso:
ImageView iv = (ImageView)findViewById(R.id.imageView1); //Url1 NOT working, loads nothing. String url1 = "http://graph.facebook.com/1464090949/picture?type=large"; //Url2 is the same as URL1, i just copied it from a browser, and this is working String url2 = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg"; Picasso.with(this).load(url2).into(iv);
So the conclusion is, facebook maybe changed something and from now on Picasso cannot load images from graph.
Anybody can suggest me something to make this work? Of course i can try different libraries but if there is an other way i would be really happy.
Answer
Workaround1:
Change to https from http.
Working: https://graph.facebook.com/1464090949/picture?type=large
Not Working: http://graph.facebook.com/1464090949/picture?type=large
Workaround2:
Found soulution on this topic.
If you want for example: http://graph.facebook.com/1464090949/picture?type=large
This profile picture you could use:
https://graph.facebook.com/1464090949/?fields=picture.type(large)
Which returns a JSON Object:
{ "id": "1464090949", "picture": { "data": { "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/572518_1464090949_1222130273_n.jpg", "is_silhouette": false } } }
And tada! There it is. url’s key is the redirected url you can use to load your images.
(This will need oAuth which i didnt tested, just stick with Workaround1)