感谢How can I display the users profile pic using the facebook graph api?我发现我可以通过
检索个人资料图片http://graph.facebook.com/[UID]/picture
但这会重定向到一个图片,例如:
http://profile.ak.fbcdn.net/hprofile-ak-snc4/hs1346.snc4/161671_1096373372_1486835_q.jpg
我的第一个问题是,当我想要显示此图像时(从API返回)
<img src="http://profile.ak.fbcdn.net/hprofile-ak-snc4/hs1346.snc4/161671_1096373372_1486835_q.jpg" />
或者我应该打电话给api:
<img src="http://graph.facebook.com/alfredwesterveld/picture" />
http://profile.ak.fbcdn.net/hprofile-ak-snc4/hs1346.snc4/161671_1096373372_1486835_q.jpg是否会显示我更新的个人资料照片,如果在Facebook上更新我的个人资料照片或显示我原来的个人资料照片。我问这些问题是因为当我可以调用绝对URL(立即解析为图像)时,我可以安全地重定向(往返)。我相信这可能会增加,特别是当我想从我的网站的访问者那里获取所有个人资料图片时。
答案 0 :(得分:4)
如果要显示用户的图片,请使用第二种方法,那就是好方法:
<img src="https://graph.facebook.com/[UID]/picture" alt="" />
这样做,您将确保每次收到用户的最新照片时,如果最近更改过。
稍后修改
与缓存问题相关,如果你想保存直接网址以改善图片的缓存我不建议这样做,因为每次用户更改个人资料图片时这些网址都会改变,所以你可能会结束即使用户最近实际更改了它,也会显示较旧的图片。
答案 1 :(得分:1)
为什么你不为此使用fbml标签?
<fb:profile-pic uid='UID' width='50' height='50'></fb:profile-pic>
EDIT 您好,如果您想让用户上传照片,那么您可以通过此
获取$photos=json_decode(file_get_contents('https://graph.facebook.com/me/photos?access_token='.$cookie['access_token'])); foreach ($photos->data as $friend) { ?> <img src="<?=$friend->source?>" width="50" height="50"> <?php }
可以轻松捕获用户上传的所有图像