2012-05-23 23 views
1

我正在製作一個Facebook畫布應用程序。使用PHP SDK獲取用戶信息即可:在IE中的Facebook身份驗證不開玩笑

<? 

     $app_id = ""; 
     $secret=""; 
     $canvas_page = ""; 
     $auth_url = ""; 


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

// Get User ID 
$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) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 

$user = $facebook->api('/me'); 

?> 

除IE(所有版本)以外的所有瀏覽器中,一切正常。當我點擊一個鏈接到另一個網頁在應用程序中,我得到了一個錯誤:

Fatal error: Uncaught OAuthException: An active access token must be used to query 
information about the current user. thrown in 
/hermes/bosoraweb019/b2365/ipg.zicedcom/metrik/fbapp/fb/base_facebook.php on line 

我剛纔給的代碼是在應用程序中的所有頁面,而我只能在IE

搞定這個問題謝謝!

回答

7

看來,對於IE,你需要啓用3rth方cookie(p3p)。剛剛改變了PHP的標頭:

<? header('P3P: CP="NOI ADM DEV PSAi NAV OUR STP IND DEM"'); ?> 
+0

偉大的溶劑,IE SUX! – lamasgergo