【发布时间】:2012-01-24 09:01:19
【问题描述】:
【问题讨论】:
标签: facebook facebook-graph-api
【问题讨论】:
标签: facebook facebook-graph-api
将宽度或高度设置为任意大的数字:
https://graph.facebook.com/username_or_id/picture?width=9999
如果宽度和高度相同,则将照片裁剪为正方形。
【讨论】:
我想我使用最简单的方法来获取完整的个人资料图片。您可以获取完整的头像,也可以自己设置头像尺寸:
$facebook->api(me?fields=picture.width(800).height(800))
您可以根据需要设置width 和height。尽管 Facebook 不会返回所要求的确切尺寸,但它会返回与它们可用的最接近尺寸的图片。
【讨论】:
找到了方法:
$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;
}
}
【讨论】:
如上所述,个人资料相册的封面照片似乎是高分辨率个人资料图片。我会检查“个人资料”的专辑类型而不是名称,因为不同语言的名称可能不一致,但类型应该是。
要减少请求/解析的数量,可以使用这个 fql: "从 type='profile' 和 owner = user_id 的相册中选择 cover_object_id"
然后您可以使用以下命令构建图像 url: "https://graph.facebook.com/" + cover_object_id + "/picture&type=normal&access_token=" + access_token
此图像似乎没有“大”类型,但“正常”类型仍然很大。
如上所述,这张照片可能比公开的个人资料照片更难访问。您需要 user_photos 或friend_photos 权限才能访问它。
【讨论】:
使用 Javascript,您可以获得像这样的全尺寸个人资料图片
将您的 accessToken 从您的 FB.init 调用传递给 getface() 函数
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);
});
}
}
});
}
});
}
【讨论】:
对于 Angular:
getUserPicture(userId) {
FB.api('/' + userId, {fields: 'picture.width(800).height(800)'}, function(response) {
console.log('getUserPicture',response);
});
}
【讨论】:
上传后,Facebook 服务器上的个人资料图片会缩小到 125x125,据我所知,您无法获得比这更大的图片。你得到的图片有多大?
【讨论】: