我正在开发一个CMS,它可以从用户的Facebook URL(即http://facebook.com/users_unique_url)中获取用户的个人资料图像。我怎样才能做到呢?是否有一个facebook API调用,获取用户的个人资料图像URL,而不需要用户允许应用程序?
当前回答
@NaturalBornCamper,
好的代码!这里是一个简洁的代码函数这样的过程!
function get_raw_facebook_avatar_url($uid)
{
$array = get_headers('https://graph.facebook.com/'.$uid.'/picture?type=large', 1);
return (isset($array['Location']) ? $array['Location'] : FALSE);
}
这将返回原始的Facebook头像图像URL。那你想怎么处置就怎么处置吧!
其他回答
显示:
50×50像素
<img src="//graph.facebook.com/{{fid}}/picture">
200像素宽度
<img src="//graph.facebook.com/{{fid}}/picture?type=large">
保存(使用PHP)
注意:不要使用这个。请看下面@ forever的评论。
$img = file_get_contents('https://graph.facebook.com/'.$fid.'/picture?type=large');
$file = dirname(__file__).'/avatar/'.$fid.'.jpg';
file_put_contents($file, $img);
$fid是你在Facebook上的用户id。
注意:对于标记为“18+”的图像,您将需要18+用户的有效access_token:
<img src="//graph.facebook.com/{{fid}}/picture?access_token={{access_token}}">
2015年更新:
Graph API v2.0不能使用用户名查询,您应该始终使用userId。
你关心头像大小吗?在使用PHP实现登录Facebook时。我们将向您展示在Facebook PHP SDK中获得大尺寸头像的简单方法。此外,您还可以获得自定义大小的Facebook个人资料的图像。
使用下面的代码行设置头像尺寸。
$userProfile = $facebook->api('/me?fields=picture.width(400).height(400)');
查看这个帖子:http://www.codexworld.com/how-to-guides/get-large-size-profile-picture-in-facebook-php-sdk/
@NaturalBornCamper,
好的代码!这里是一个简洁的代码函数这样的过程!
function get_raw_facebook_avatar_url($uid)
{
$array = get_headers('https://graph.facebook.com/'.$uid.'/picture?type=large', 1);
return (isset($array['Location']) ? $array['Location'] : FALSE);
}
这将返回原始的Facebook头像图像URL。那你想怎么处置就怎么处置吧!
简单的一行代码,保存完整尺寸的档案图像在您的服务器上。
<?php
copy("https://graph.facebook.com/FACEBOOKID/picture?width=9999&height=9999", "picture.jpg");
?>
只有在php.ini中启用了openssl,这才有效。
获取图片URL,而不是二进制内容:
$url = "http://graph.facebook.com/$fbId/picture?type=$size";
$headers = get_headers($url, 1);
if( isset($headers['Location']) )
echo $headers['Location']; // string
else
echo "ERROR";
你必须使用你的FACEBOOK ID,而不是用户名。你可以在那里获得你的facebook id:
http://findmyfbid.com/