facebook graph api图片 - 获取带.jpg的完整网址

时间:2012-11-21 03:42:19

标签: php facebook facebook-graph-api

我可以通过访问用户id从图形API访问我的用户图像,如下所示:
https://graph.facebook.com/<USER_ID>/picture

但是,为了使我的代码能够工作,我需要像http://profile.ak.fbcdn.net/hprofile-ak-snc6/******_**************_********_q.jpg

这样的图像的真实路径 FBs doc表明通过添加?callback=foo我可以获得输出,但实际上它似乎无法正常工作。

有关使用.jpggraph api的{​​{1}}扩展程序获取图片完整路径的任何建议,谢谢。

2 个答案:

答案 0 :(得分:2)

回调是针对javascript请求的,

对于php,请尝试在网址中附加redirect=false

执行卷曲请求,

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

如果你想在js中使用回调,

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

Demo

Reference

答案 1 :(得分:1)

* 使用后,您永远不会得到错误的结果*

$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);