测试用户是否发布了Facebook个人资料图片,如果是,则检索它?

时间:2011-05-25 14:05:32

标签: facebook api detect image facebook-fql

验证用户是否放入了Facebook个人资料图片(即非默认图片)的正确方式是什么?如果是,请检索它?

这:How to determine if a Facebook user has uploaded a profile picture or its default?谈论一种方法,但作者自己说这是一种不好的方法:

public static function hasProfilePicture($fbuid) 
{
    /* Really stupid method to test if Facebook user has real profile picture
    * based on FB returning a gif when you request a large photo.  
    * Use with care - for every profile there's an outgoing request! */ 
    $r = get_headers("http://graph.facebook.com/$fbuid/picture?type=square"); 
    return !array_search("Content-Type: image/gif",$r);
}

1 个答案:

答案 0 :(得分:1)

如果用户有个人资料照片,可以通过http://graph.facebook.com/<facebook username>/picture访问该照片。例如,http://graph.facebook.com/gauravgupta.in/picture重定向到特定网址并显示我的Facebook个人资料图片。

但是,如果用户没有个人资料照片,则上述网址会重定向到标准占位符图片的网址,该网址目前为http://profile.ak.fbcdn.net/static-ak/rsrc.php/v1/yo/r/UlIqmHJn-SK.gif

这绝对不是一种可靠的方式,但在Facebook决定改变之前一直有效。