2012-04-28 158 views
1

我有像下面的代碼。爲什麼$userId總是0?當我點擊登錄按鈕時,我得到B.login() called when user is already connected.。當我在fb中檢查允許的應用程序時,會添加此應用程序。它看起來像我連接,所以它應該是我的id,而不是0使用Facebook的API登錄

<pre> 
define('YOUR_APP_ID', ###); 

require 'facebook.php'; 

$facebook = new Facebook(array(
    'appId' => ###, 
    'secret' => '###', 
)); 

$userId = $facebook->getUser(); 
echo $userId; 
?> 

<html> 
    <body> 
    <?php if ($userId) { 
     $userInfo = $facebook->api('/' + $userId); ?> 
     Welcome <?= $userInfo['name'] ?> 
    <?php } else { ?> 
    <div id="fb-root"></div> 
    <fb:login-button></fb:login-button> 
    <?php } ?> 
    <script> 
     window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : '<? echo('####'); ?>', 
      status  : true, 
      cookie  : true, 
      xfbml  : true, 
      oauth  : true, 
     }); 

     FB.Event.subscribe('auth.login', function(response) { 
      window.location.reload(); 
     }); 
     }; 

     (function(d){ 
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     d.getElementsByTagName('head')[0].appendChild(js); 
     }(document)); 
    </script> 
    </body> 
</html> 

回答

1

我有當我用FBJS SDK的連接還我擔心自己是如何運行的功能,以及如何這個問題解決了,但不嚴重取得成功的同樣的問題...

我是指你這個鏈接https://github.com/facebook/php-sdk,因爲它易於使用,爲Facebook的連接....

此外,我不希望在這裏,因爲它太冗長複製我的代碼和屬於笨

+0

只是主代碼算法的一小段代碼會很有用 – 2012-04-28 20:53:55

0

你在使用IE嗎?如果是這樣,您需要將P3P標題發送到您的所有頁面。

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 

如果沒有,請在登錄到應用程序時給予用戶良好的權利。