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

时间:2012-01-28 09:38:20

标签: php facebook facebook-graph-api

在我的项目中,我使用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个人资料照片?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

这样的事情:

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;
}

并使用Image:

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

您要更改为UserID的UsernameOrUserID:

<强> 1234321

如果网址是:

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

或用户名:

<强> my.name

如果facebook网址为http://facebook.com/ my.name

答案 2 :(得分:0)

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

你可以这样做:

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 ;
}

希望这会有所帮助:)