2012-04-14 17 views
0

私のサイトにログインボタンを置くと、ユーザーはログインするだけで実際に登録する必要はありません。彼は実際にログインする前に(私はデータベースにデータを保存することができます)REGISTER?ログイン前にFacebookのユーザーが「登録」されていることを確認してください

インデックスのための私のコードは...

<?php 

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

$facebook = new Facebook(array(
    'appId' => '*id trimmed*', 
    'secret' => '*secret trimmed*', 
)); 

// See if there is a user from a cookie 
$user = $facebook->getUser(); 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>'; 
    $user = null; 
    } 
} 

?> 
<!DOCTYPE html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <body> 
    <?php if ($user) { ?> 
     Your user profile is 
     <pre> 
     <?php print htmlspecialchars(print_r($user_profile, true)) ?> 
     </pre> 
    <?php } else { ?> 
     <fb:login-button>Logga in med Facebook</fb:login-button> 

    <?php } ?> 
    <div id="fb-root"></div> 
    <script> 
     window.fbAsyncInit = function() { 
     FB.init({ 
      appId: '<?php echo $facebook->getAppID() ?>', 
      cookie: true, 
      xfbml: true, 
      oauth: true 
     }); 
     FB.Event.subscribe('auth.login', function(response) { 
      window.location.reload(); 
     }); 
     FB.Event.subscribe('auth.logout', function(response) { 
      window.location.reload(); 
     }); 
     }; 
     (function() { 
     var e = document.createElement('script'); e.async = true; 
     e.src = document.location.protocol + 
      '//connect.facebook.net/en_US/all.js'; 
     document.getElementById('fb-root').appendChild(e); 
     }()); 
    </script> 
    </body> 
</html> 
+0

を、これはOpenIDのであればその後、ログインするとデータを保存し、登録を強制しないことがポイントです。 – jli

+0

ユーザーが実際にそれを必要としない場合、登録プラグインが必要なのは何ですか? – John

+0

あなたが何をやろうとしているのか分からない、または実際に登録プラグインを必要としていない。 Facebookから提供されるデータより多くのデータをユーザーから取得する必要がある場合は、最初にログインした後にポップアップするダイアログが表示されます。 – jli

答えて

0

ちょうど存在する場合は、データベースでのFacebookのユーザーIDを比較する - >他のログイン、 - >登録:

// ... 
if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>'; 
    $user = null; 
    } 
} 

if ($user) 
{ 
    $id = $user_profile['id']; // facebook user id; 
    // now use this $id to compare with your database saved user facebook user id 
    // if not exists, then create user, else update login counter or only get profile 
} 
//... 
関連する問題