Get user profile picture by Id
I'm now working on a web application which is mostly based of facebook graph api. I hold some data about users - actually , the possible public data available - such as name and id. I also know that a profile picture is a part of the public data, and I wondered how I'll be able to get a direct link to a profile picture of a user only by using his id?
Thanks in advance
Solution 1:
http://graph.facebook.com/" + facebookId + "/picture?type=square For instance: http://graph.facebook.com/67563683055/picture?type=square
There are also more sizes besides "square". See the docs.
Update September 2020
As Facebook have updated their docs this method is not working anymore without a token. You need to append some kind of access_token
. You can find further information and how to do it correctly in the fb docs to the graph api of user picture
Requirements Change This endpoint supports App-Scoped User IDs (ASID), User IDs (UID), and Page-Scoped User IDs (PSID). Currently you can query ASIDs and UIDs with no requirements. However, beginning October 24, 2020, an access token will be required for all UID-based queries. If you query a UID and thus must include a token:
use a User access token for Facebook Login authenticated requests
use a Page access token for page-scoped requests
use an App access token for server-side requests
use a Client access token for mobile or web client-side requests
Quote of fb docs
Solution 2:
You can use following urls to obtain different sizes of profile images. Please make sure to add Facebook id to url.
Large size photo https://graph.facebook.com/{facebookId}/picture?type=large
Medium size photo https://graph.facebook.com/{facebookId}/picture?type=normal
Small size photo https://graph.facebook.com/{facebookId}/picture?type=small
Square photo https://graph.facebook.com/{facebookId}/picture?type=square
Solution 3:
To get largest size of the image
https://graph.facebook.com/{userID}?fields=picture.width(720).height(720)
or anything else you need as size. Based on experience, type=large is not the largest result you can obtain.
Solution 4:
From the Graph API documentation.
-
/OBJECT_ID/picture
returns a redirect to the object's picture (in this case the users) -
/OBJECT_ID/?fields=picture
returns the picture's URL
Examples:
<img src="https://graph.facebook.com/4/picture"/>
uses a HTTP 301 redirect to Zuck's profile picture
https://graph.facebook.com/4?fields=picture
returns the URL itself
Solution 5:
This will be helpful link:
http://graph.facebook.com/893914824028397/picture?type=large&redirect=true&width=500&height=500
You can set height and width as you needed
893914824028397 is facebookid