答案 0 :(得分:122)
将宽度或高度设置为任意大的数字:
https://graph.facebook.com/username_or_id/picture?width=9999
如果宽度和高度相同,则会将照片裁剪为正方形。
答案 1 :(得分:85)
我认为我使用最简单的方法来获取完整的个人资料图片。您可以获得完整的个人资料图片,也可以自己设置个人资料图片尺寸:
$facebook->api(me?fields=picture.width(800).height(800))
您可以根据需要设置width
和height
。虽然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。你会在那里找到一些这样的网址
出于隐私原因,我已故意将“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,据我所知,你无法获得比这更大的图片。你得到的图片有多大?