2011-06-24 211 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>'; 

如果我错了,请准确告诉我你是什么意思下“无法登录”,是什么阻止你等等。