0

我不知道我做錯了什麼。 它總是顯示我的身份驗證網址,但我總是點擊鏈接,但仍然沒有設置我的應用程序。

ini_set('include_path',"F:\fubolito\ajax.fubolito.py\inc"); 
include($_SERVER['DOCUMENT_ROOT'].'../ajax.fubolito.py/inc/config.global.php'); 
include('sdk/facebook.php'); 
$facebook = new Facebook(array('appId' => $fb['app_id'],'secret' => $fb['secret'], 
'cookie' => true, 
)); 

$facebook->setAccessToken($_GET['code']); 

$user = $facebook->getUser(); 

if(!$user) 
echo '<a href="'.$facebook->getLoginUrl().'">Login</a>'; 

什麼即時做錯了?

+0

你可以用php sdk創建一個測試頁面,只需登錄和註銷?我會嘗試登錄並查看auth中是否有錯誤。即使是用於php sdk的默認樣本也適用於此測試。 – 2012-08-03 20:11:53

+1

我添加了try catch的東西,現在可以工作了! 非常感謝肖恩! – 2012-08-03 23:29:06

+0

真棒,我將發佈一個通用的解決方案與嘗試捕獲的用戶誰來相同的情況。 – 2012-08-04 16:45:21

回答

1
<?php 
require 'src/facebook.php'; 
$facebook = new Facebook(array(
    'appId' => 'YourAppId', 
    'secret' => 'SecretKey', 
    'cookie' => true, // enable optional cookie support 
)); 
// 
try { $user = $facebook->getUser(); } catch (FacebookApiException $e) { } 
// 
$access_token = $_SESSION['fb_YourAppID_access_token']; 
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; 
    } 
} 
if ($user) { 
    $params = array (
    access_token => ''.$access_token.'', 
); 
    $logoutUrl = $facebook->getLogoutUrl($params); 
} else { 
$params = array(
    scope => 'read_stream,publish_stream,publish_actions,read_friendlists', 
    //redirect_uri => $url 
); 
    $loginUrl = $facebook->getLoginUrl($params); 
}; 

?>