s_p
s_p

Reputation: 4693

facebook graph api picture - get full url with .jpg

I am able to access my user image from FB with graph api by accessing the user id like so:
https://graph.facebook.com/<USER_ID>/picture

However for my code to work, i need the real path to the image like
http://profile.ak.fbcdn.net/hprofile-ak-snc6/******_**************_********_q.jpg

FBs doc shows that by adding ?callback=foo i can get an output, but in practice it doesnt seem to work.

any suggestions for getting the full path to my image with that .jpg extension from graph api or with the user id, thank you.

Upvotes: 0

Views: 2125

Answers (2)

Shailendra Sharma
Shailendra Sharma

Reputation: 6992

*USE FOLLOWING YOU NEVER GET WRONG RESULT *

$URL='FB GRAPH API URL';
$headers = get_headers($URL, 1); // make link request and wait for redirection
    if(isset($headers['Location'])) {
      $URL = $headers['Location']; // this gets the new url
    }
    $url_arr = explode ('/',$URL);
    $ct = count($url_arr);
    $name = $url_arr[$ct-1];
    $name_div = explode('.', $name);
    $ct_dot = count($name_div);
    $img_type = $name_div[$ct_dot -1];
    $pos = strrpos($img_type, "&");//many time you got in url
    if($pos)
    {
        $pieces = explode("&", $img_type);
        $img_type = $pieces[0];

    }

    $imagename = imgnameyouwant'.'.$img_type;
    $content = file_get_contents($URL);
    file_put_contents("fbscrapedimages/$imagename", $content);

Upvotes: 1

Jashwant
Jashwant

Reputation: 28995

Callback is for javascript requests,

For php,try appending a redirect=false in url.

Do a curl request to,

https://graph.facebook.com/shaverm/picture?redirect=false

If you want to use callback in js,

$.getJSON('https://graph.facebook.com/zuck/picture?callback=?',function (resp) {
    $('body').html(resp.data.url);
});​

Demo

Reference

Upvotes: 2

Related Questions