获取全尺寸的个人资料图片

时间:2011-12-20 11:32:12

标签: facebook facebook-graph-api

无论如何使用任何facebook api获取全尺寸的个人资料图片?

http://graph.facebook.com/ {ID} / picture?type = large是小的。

谢谢:)

8 个答案:

答案 0 :(得分:122)

将宽度或高度设置为任意大的数字:

https://graph.facebook.com/username_or_id/picture?width=9999

如果宽度和高度相同,则会将照片裁剪为正方形。

答案 1 :(得分:85)

我认为我使用最简单的方法来获取完整的个人资料图片。您可以获得完整的个人资料图片,也可以自己设置个人资料图片尺寸:

$facebook->api(me?fields=picture.width(800).height(800))

您可以根据需要设置widthheight。虽然Facebook没有返回所要求的确切尺寸,但它会返回最接近尺寸的图片。

答案 2 :(得分:6)

找到了一条路:

$albums = $facebook->api('/' . $user_id . '/albums');
foreach($albums['data'] as $album){
    if ($album['name'] == "Profile Pictures"){
        $photos = $facebook->api('/' . $album['id'] . '/photos');
        $profile_pic = $photos['data'][0]['source'];
        break;
    }
}

答案 3 :(得分:4)

如上所述,个人资料专辑的封面照片似乎是高分辨率的个人资料照片。我会检查专辑类型“profile”而不是名称,因为名称可能在不同语言中不一致,但类型应该是。

要减少请求/解析的数量,可以使用这个fql:  “从相册中选择cover_object_id,其中type ='profile'和owner = user_id”

然后你可以构建图像网址: “https://graph.facebook.com/”+ cover_object_id +“/ picture& type = normal& access_token =”+ access_token

看起来此图片没有“大”类型,但“正常”类型仍然非常大。

如上所述,此照片可能比公共个人资料图片更难以访问。您需要user_photos或friend_photos权限才能访问它。

答案 4 :(得分:2)

使用Javascript,您可以获得像这样的全尺寸个人资料图片

将您的accessToken传递给getface()来电中的FB.init功能

function getface(accessToken){
  FB.api('/me/friends', function (response) {
    for (id in response.data) { 
        var homie=response.data[id].id         
        FB.api(homie+'/albums?access_token='+accessToken, function (aresponse) {
          for (album in aresponse.data) {
            if (aresponse.data[album].name == "Profile Pictures") {                      
              FB.api(aresponse.data[album].id + "/photos", function(aresponse) {
                console.log(aresponse.data[0].images[0].source); 
              });                  
            }
          }   
        });
    }
  });
}

答案 5 :(得分:2)

您可以在firefox中使用firebug等开发人员工具。右键单击图像并使用firebug检查元素。

您将从facebook检索图像的位置获取URL。你会在那里找到一些这样的网址

http://profile.ak.fbcdn.net/hprofile-ak-snc7/c160.2.762.762/s160x160/297962_1190xxxxx203889_104xxxxx723_n.jpg

出于隐私原因,我已故意将“x”放在链接中。

要以全分辨率查看图像,请打开一个新标签并打开此网址:

http://sphotos-e.ak.fbcdn.net/hphotos-ak-snc6/ “297962_1190xxxxx203889_104xxxxx723_n.jpg”

如您所见,我已将确切的图像名称放在'/'

之后

删除引号并打开链接。您将获得完整尺寸的图像。

答案 6 :(得分:2)

对于Angular:

getUserPicture(userId) {   
FB.api('/' + userId, {fields: 'picture.width(800).height(800)'}, function(response) {
  console.log('getUserPicture',response);
});
}

答案 7 :(得分:-8)

在上传时,个人资料图片在脸书服务器上缩小到125 x 125,据我所知,你无法获得比这更大的图片。你得到的图片有多大?