如何确定Facebook用户是否上传了个人资料图片或其默认图片?
有没有办法知道用户是否上传了一张图片到个人资料中,或者它是否通过Facebook或其他什么东西拥有默认的用户图片?您可以使用下面的Python脚本(没有提到任何编程语言)使其正常工作如何确定Facebook用户是否上传了个人资料图片或其默认图片?,facebook,api,detect,image,facebook-fql,Facebook,Api,Detect,Image,Facebook Fql,有没有办法知道用户是否上传了一张图片到个人资料中,或者它是否通过Facebook或其他什么东西拥有默认的用户图片?您可以使用下面的Python脚本(没有提到任何编程语言)使其正常工作 urllib.urlopen('https://graph.facebook.com/<PROFILE_ID>/picture?access_token=%s' % access_token).geturl() 女性: https://fbcdn-profile-a.akamaihd.net/stat
urllib.urlopen('https://graph.facebook.com/<PROFILE_ID>/picture?access_token=%s' % access_token).geturl()
女性:
https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v1/y9/r/IB7NOFmPw2a.gif
我希望这会有所帮助。从我对Facebook API的实验来看,人们似乎必须实际获得图片,才能判断它是否是静态默认图片 在撰写本文时,Facebook上上传的所有照片似乎都已转换为JPEG格式,而静态默认图片为GIF格式。(顺便说一句,这与某些缩略图大小不一致) 查找特定的GIF文件或特定的URL路径是不可靠的(请注意,其中涉及CDN URL,并且男性和女性有不同的静态文件)。假设Facebook没有对他们的整个个人资料照片数据库进行重新编码,我想寻找GIF已经足够可靠了 下面是一个PHP函数示例。我已经在我的120个Facebook好友中成功地测试了它,而且它似乎可以胜任这项工作
public static function hasProfilePicture($fbuid)
{
/* Really stupid method to test if Facebook user has real profile picture
* based on Facebook returning a GIF image 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);
}
如果用户没有照片,则当您使用指定的“照片”字段请求用户对象时,“is_剪影”字段将为真 请求示例:
https://graph.facebook.com/username?fields=picture
答复:
{
"id": "100002095576350",
"picture": {
"data": {
"url": "http://profile.ak.fbcdn.net/static-ak/rsrc.php/v2/yo/r/UlIqmHJn-SK.gif",
"is_silhouette": true
}
}
}
快速脏PHP函数:
function facebook_user_has_photo($username_or_id){
$request = file_get_contents('https://graph.facebook.com/'.$username_or_id.'?fields=picture');
if($request):
$user = json_decode($request);
if($user && !$user->picture->data->is_silhouette) return true;
endif;
return false;
}
对于PHP开发人员,您可以使用:
并在标题中查找位置:)对于男性和女性,有不同的图片。因此,找出男性/女性的位置。也可以通过校验和来检查文件。你认为呢,多久改变一次这些gif文件的位置?我不认为。。。他们需要改变。。。如果仍然如此,那么您需要继续检查这些位置。
{
"id": "100002095576350",
"picture": {
"data": {
"url": "http://profile.ak.fbcdn.net/static-ak/rsrc.php/v2/yo/r/UlIqmHJn-SK.gif",
"is_silhouette": true
}
}
}
function facebook_user_has_photo($username_or_id){
$request = file_get_contents('https://graph.facebook.com/'.$username_or_id.'?fields=picture');
if($request):
$user = json_decode($request);
if($user && !$user->picture->data->is_silhouette) return true;
endif;
return false;
}