2011-02-05 3 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は正確に何をしたいでしょう:marlonwayans10 @

<?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

を:あなたは歓迎されています!回答を投票してください! – ifaour