2011-08-26 106 views
0

我得到一個錯誤致命錯誤:未捕獲OAuthException:(#100)

error_log: Could not set cookie. Headers already sent. 
Fatal error: Uncaught OAuthException: (#100) link URL is not properly formatted thrown in /home/admin/facebook.php on line 453 

腳本工作了幾個月前所以只是再次上傳,並得到一個錯誤。這是一個定製的腳本,所以不知道什麼是錯的,所以認爲id在這裏問。這裏是我的代碼

require_once 'facebook.php'; 
require_once 'database.class.php'; 
require_once 'config.php'; 

/** 
* FB Session 
*/ 
$facebook = new Facebook(array(
    'appId' => FB_APP_ID, 
    'secret' => FB_SECRET, 
    'cookie' => true, 
)); 

$session = $facebook->getSession(); 
$params = array(
    'canvas'  => 1, 
    'fbconnect'  => 0, 
    'next'   => URL_CANVAS, 
    'req_perms'  => 'publish_stream, offline_access' 
); 
$loginUrl = $facebook->getLoginUrl($params); 

/** 
* User authenticated? 
*/ 
if ($session) { 
    try { 
     $fb_uid = $facebook->getUser(); 
     $me  = $facebook->api('/me'); 
     $access_token = $session['access_token']; 
     $pg  = 'main'; 
    } catch (FacebookApiException $e) { 
     echo '<script type="text/javascript">top.location.href = "' . URL_CANVAS . '";</script>'; 
     exit; 
    } 
} else { 
    $pg = 'splash'; 
} 
?> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
     <meta http-Equiv="Cache-Control" Content="no-cache" /> 
     <meta http-Equiv="Pragma" Content="no-cache" /> 
     <meta http-Equiv="Expires" Content="0" /> 

     <title>bloxorz worldst hardest game can you beat it ?</title> 

     <!--// using jQuery UI for this sample app //--> 
     <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 
     <script type="text/javascript"> 
      $(function() { 
       $("#tabs").tabs(); 
      }); 
     </script> 
    </head> 
<body> 
<!--// Facebook Javascript SDK needed for IFrame Canvas App //--> 
<div id="fb-root"></div> 
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 
    window.fbAsyncInit = function() { 
     FB.init({appId: '<?php echo FB_APP_ID; ?>', status: true, cookie: true, xfbml: true}); 
     FB.Canvas.setSize(); 
    }; 
    (function() { 
     var e = document.createElement('script'); 
     e.type = 'text/javascript'; 
     e.src = document.location.protocol + 
      'http://connect.facebook.net/en_US/all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 

<!--// START: page include //--> 
<?php 
if (!empty($pg)) { 
    include $pg . '.php'; 
} else { 
    echo '<b>Error:</b> Page Not Found.'; 
} 
?> 
<!--// END: page include //--> 

或者是在facebook.php頁面的錯誤? 由於facebook.php線453

// results are returned, errors are thrown 
    if (is_array($result) && isset($result['error'])) { 
     $e = new FacebookApiException($result); 
     if ($e->getType() === 'OAuthException') { 
     $this->setSession(null); 
     } 
     throw $e; 
    } 
    return $result; 
    } 

回答

0

您已經開始被設置頭前的「呼應」的輸出。 453行的Facebook.php試圖設置一些響應標題,但它不能,因爲標題已經被設置並且響應正文已經開始。

請確保您沒有echo,var_dumppr或在執行第453行之前向瀏覽器輸出任何內容。

相關問題