2011-06-24 209 views
0

幾天前我開始玩fb api。我正在使用fb php-sdk在我的網站上使用臉書認證用戶。我使用下面這段代碼,但間歇性地,我似乎無法弄清楚爲什麼。Facebook api php-sdk

<?php 
    session_start(); 


    require './library/facebook.php'; 
    include './library/fb_keys.php'; 

    // Create app instance 
    $facebook = new Facebook(array(
    'appId' => YOUR_APP_ID, 
    'secret' => YOUR_APP_SECRET, 
    )); 

    // Get User ID 
    $user = $facebook->getUser(); 

    //Check Access token 

    if ($user) { 
    try { 
    // Proceed with logged in user. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    //error_log($e); 
    $user = null; 
    } 
    } 

// Login or logout based on user state 
if ($user) { 
$logoutUrl = $facebook->getLogoutUrl(); 

    } else { 
    $loginUrl = $facebook->getLoginUrl(array('scope' => 'status_update, publish_stream', 'redirect_uri' => 'http://webaddress.com/web/')); 

    } 

    ?> 

這是我從https://github.com/facebook/php-sdk/得到的一段非常簡單的代碼。

我通常無法登錄,當我清除我的所有cookie和/或會話被清除。但是一旦我登錄到facebook.com網站,似乎都可以再次運行。所以這表明我錯過了關於設置會話或cookie的事情。

任何幫助將不勝感激。

回答

0

我猜不工作,你的意思是說用戶沒有重定向到登錄頁面?

你確實得到了loginUrl,但你並沒有在那裏重定向用戶。

這可以用$ loginUrl行之後添加以下代碼來完成伊斯利:

print '<script language="javascript" type="text/javascript"> top.location.href="'. $loginUrl .'"; </script>'; 

如果我錯了,請準確告訴我你是什麼意思下「無法登錄」,是什麼阻止你等等。