如何在我的php项目中显示Facebook个人资料照片


How to display the Facebook profile photo in my php project

在我的项目中,我使用Facebook帐户登录,但个人资料页面显示gravatar.com的图像。我想显示注册用户的www.Facebook.com的个人资料图像。在我的本地系统中,我有以下代码来显示来自www.gravatar.com 的个人资料照片

public function gravatar($email, $s = 80, $d = 'mm', $r = 'g', $img = FALSE, $atts = array())
{
    $url = 'https://secure.gravatar.com/avatar/'
        . md5(strtolower(trim( $email)))
        . "?s=$s&d=$d&r=$r";
    if ($img)
    {
        $url = '<img src="' . $url . '"';
        foreach ($atts as $key => $val)
        {
            $url .= ' ' . $key . '="' . $val . '"';
        }
        $url .= ' />';
    }
    return $url;
}

如何显示Facebook个人资料照片而不是gravatar.com个人资料照片?

您可以链接到https://graph.facebook.com/usernameOrId/picture

类似这样的东西:

function facebookAvatar($uid, $img = FALSE, $atts = array())
{
    $url = 'https://graph.facebook.com/'.trim($uid).'/picture';
    if ($img)
    {   
        $url = '<img src="' . $url . '"';
        foreach ($atts as $key => $val)
        {
            $url .= ' ' . $key . '="' . $val . '"';
        }
        $url .= ' />';
    }
    return $url;
}

并获得图像使用:

<?php echo facebookAvatar('UsernameOrUserID', TRUE, array('width'=>'80px', 'height'=>'80px')); ?>

UsernameOrUserID您必须更改为UserID:

123421

如果url是:

http://facebook.com/profile.php?id=123421

或用户名:

我的名字

如果facebook url是http://facebook.com/my.name

如果您使用的是PHP SDK,您可以获得当前登录USer的userId并显示用户图像。

你可以这样做:

require_once 'path/to/facebookSDK.php';
$facebook = new Facebook(array(
       'appId'  => 'YOUR_APP_ID',
       'secret' => 'YOUR_APP_SECRET',
));
// Get User ID
$user = $facebook->getUser();
//this will ouptput your current logged in user facebook image
echo getFacebookPhotoAvatar ($user);
function getFacebookPhotoAvatar ($user) {
      if($user) {
            $photoUrl = "https://graph.facebook.com/".$user."/picture";
            $facebookPhoto = '<img src="'.$photoUrl.'" alt="FacebookUserImage"/>';
      } else {
            $facebookPhoto = '';
      }
      return $facebookPhoto ;
}

希望这有帮助:)