2011-02-05 46 views
2

我希望新用戶能夠使用我的網站上的fb連接按鈕進行「連接」,一旦連接,它將顯示他們的第一個+最後一個名稱和個人資料圖片。Facebook連接,然後顯示用戶的第一個姓氏和個人資料圖片

如果用戶已連接,則連接按鈕變成註銷。

通過文檔,我已經實現了以下代碼;

<html> 
    <head> 
     <title>test full name and photo</title> 
    </head> 
    <body> 
     <div id="fb-root"></div> 
     <script src="http://connect.facebook.net/en_US/all.js"> 
     </script> 
     <script> 
     FB.init({ 
      appId:'xxxxxxxxxx', cookie:true, 
      status:true, xfbml:true 
     }); 
     FB.api('/me', function(user) { 
      if(user != null) { 
       var image = document.getElementById('image'); 
       image.src = 'http://graph.facebook.com/' + user.id + '/picture'; 
       var name = document.getElementById('name'); 
       name.innerHTML = user.name 
      } 
     }); 
     </script> 
      <div align="center"> 
      <img id="image"/> 
      <div id="name"></div> 
      </div> 
    </body> 
</html> 

唯一的問題是,它不顯示Facebook的連接按鈕,當我嘗試插入,代碼休息。

任何幫助將不勝感激!

回顧:網站檢查用戶是否已連接並且有有效會話,如果沒有,則顯示fb連接/登錄按鈕,如果是,則顯示註銷按鈕,無論哪種方式都應該向用戶顯示其用戶名和個人資料照片。

謝謝!

回答

7

Facebook PHP-SDK會做你想要什麼:

<?php 

require '../src/facebook.php'; 

// Create our Application instance (replace this with your appId and secret). 
$facebook = new Facebook(array(
    'appId' => 'APP_ID', 
    'secret' => 'APP_SECRET', 
)); 

$user = $facebook->getUser(); 
// Session based API call. 
if ($user) { 
    try { 
     $me = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
     echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>'; 
     $user = null; 
    } 
} 

// login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 
?> 
<!DOCTYPE html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
    <title>test full name and photo</title> 
</head> 
<body> 
    <div id="fb-root"></div> 
    <script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : '<?php echo $facebook->getAppId(); ?>', // App ID 
      channelURL : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File 
      status  : true, // check login status 
      cookie  : true, // enable cookies to allow the server to access the session 
      oauth  : true, // enable OAuth 2.0 
      xfbml  : true // parse XFBML 
     }); 

     // whenever the user logs in, we refresh the page 
     FB.Event.subscribe('auth.login', function() { 
      window.location.reload(); 
     }); 
    }; 

    (function() { 
     var e = document.createElement('script'); 
     e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 
    </script> 
    <?php if ($user): ?> 
    <a href="<?php echo $logoutUrl; ?>"> 
     <img src="http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif"> 
    </a> 
    <?php else: ?> 
    <div> 
     Using JavaScript &amp; XFBML: <fb:login-button></fb:login-button> 
    </div> 
    <?php endif ?> 


    <?php if ($user): ?> 
    <div align="center"> 
     <img id="image" src="https://graph.facebook.com/<?php echo $uid; ?>/picture" /> 
     <div id="name"><?php echo $me['name']; ?></div> 
    </div> 
    <?php endif ?> 
</body> 
</html> 
+0

@ marlonwayans10:歡迎您!請考慮投票答案! – ifaour 2011-02-08 17:18:27

相關問題