Facebook Graph high resolution photos

facebook, facebook-graph-api

Solution

`me/home` - graph api has some a field called `"object_id" and "type"`. If the type is "photo" then you will have this object_id value. By Using this object id and make another graph api call then you will get an objecty called `"images"`. This object has several options ( different sizes ).

OR

Use object id like below and get a album sized version of a photo. and the supported types for this call are "thumbnail, normal, album".

https://graph.facebook.com/{object-id-from-feed}/picture?type=normal 

and also checkout this link under Examples of Supported Objects section.

Problem

I'm doing a Facebook Graph API call for "me/home" to get the user's news feed. As everyone knows, the URL you get in the "picture" field is a low resolution photo that doesn't look good at anything above 100x100. I know you can get the URL to the high resolution picture by doing another graph call for the "object_id" and using the "source" field in that result. But I was looking at the URLs and thought there might be a way to transform one into the other without having to make another graph call. Either that, or construct the high resolution one from existing data in other fields. For example, the first URL is the low resolution one, and the second URL is the source resolution. ``` http://photos-d.ak.fbcdn.net/hphotos-ak-ash4/297313_10152643117455790_610095553_s.jpg http://sphotos-b.xx.fbcdn.net/hphotos-ash4/297313_10152643117455790_610095553_n.jpg ``` It looks like the numbers are `(something I don't know)_("object_id")_(something else I don't know)` Has anyone had experience with trying to change out the URLs while still keeping the numerical section in the middle? Are there typically variations that could cause regex problems? EDIT: Here is the code I'm using. ``` String objectId = null; if (jsonObject.has("object_id")) { objectId = jsonObject.getString("object_id"); } String postPhoto = "http://graph.facebook.com/" + objectId + "/picture"; ``` The check for if the post is a photo is a little earlier in the code, so it'll always run these lines for a post type of "photo".

Original source