2012-11-29 77 views
0

我已經閱讀了這個線程的負載,但沒有答案或給出的答案不適用於我。

我有以下代碼要求授權我的Facebook應用程序,如果他們還沒有授權它。一旦獲得授權,它應該重定向到相同的頁面,但這次它不應該要求授權。

代碼詢問了完美的用戶授權...工程完全按照我想要的,但是當應用程序重新加載$用戶總是被設置爲0。

這裏是我的代碼:

//Get PHP SDK 
require_once 'facebook.php'; 
// Create our Application instance. 
$facebook = new Facebook(array(
    'appId' => 'xxxxxxxxxxxxxxx', 
    'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
    'cookie' => true 
)); 
    // Get User ID 
    $user = $facebook->getUser(); 

    if ($user) { 
     try { 
      $user_profile = $facebook->api('/me'); 
      echo "logged in and authenticated"; 
     } catch (FacebookApiException $e) { 
      error_log($e); 
      $user = null; 
     } 
    } 

    // Ask for authorisation 
    if(!$user) { 
     $login_url = $facebook->getLoginUrl(
      array(
       'canvas' => 1, 
       'fbconnect' => 0, 
       'scope' => 'email,publish_stream', 
       'redirect_uri' => 'myurl - same as Site URL in app basic settings' 
      ) 
     ); 
     echo "<script> top.location.href='" . $login_url . "'</script>"; 
    } 


} 

後,用戶已經授權該應用程序,它不再要求授權,所以我假設授權工作,但爲什麼$facebook->getUser()返回0?

重定向後的URL有兩個查詢字符串參數 - 「狀態」和「代碼」。它們是否相關?我應該和他們一起做點什麼嗎?據我所知,我已經下載了最新的Facebook SDK,所以我不知道如何才能正常工作。

注:我通過AJAX調用上面的代碼。

回答

0

好的,我已經對此進行了排序。 代碼確實起作用,這只是我通過ajax運行這個問題。 一旦我用它作爲一個適當的頁面加載,而不是一個Ajax調用它一切工作:)