2012-05-18 66 views
0

我实际上试图找到一个解决方案,但没有,我希望我会找到一个解决方案在这里!Facebook连接到Facebook的iframe

我在我的网站上使用facebook连接,一切正常 当我登录Facebook时,我通过Facebook连接自动登录到我的网站,反之亦然。

现在我试图使它成为一个Facebook应用程序,但我有以下问题: 我尝试facebook的iframe中运行,但不幸的是我没有在自动登录,有时它的工作原理,有时什么也没有发生,有时我此消息:使用(无法获取Facebook的会议服务器可能无法牢固的Facebook连接到用户检索信息。)

一些代码IM:

include 'includes/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => $setting['facebook_appid'], 
    'secret' => $setting['facebook_secret'], 
    'cookie' => true, // enable optional cookie support 
)); 

if ($facebook->getUser()) { 
$facebook_session = 1; 

try { 
    $fb_user = $facebook->api('/me'); 
} catch (FacebookApiException $e) { 
    error_log($e); 
} 

function get_facebook_cookie($app_id, $application_secret) { 
    $args = array(); 
    parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); 
    ksort($args); 
    $payload = ''; 
    foreach ($args as $key => $value) { 
    if ($key != 'sig') { 
     $payload .= $key . '=' . $value; 
    } 
    } 
    if (md5($payload . $application_secret) != $args['sig']) { 
    return null; 
    } 
    return $args; 
} 

$cookie = get_facebook_cookie($setting['facebook_appid'], $setting['facebook_secret']); 

$open = @file_get_contents('https://graph.facebook.com/me?access_token='.$cookie['access_token']); 

if ($open != FALSE) { 
    $fbdata = json_decode($open); 
    $fb_user = array(); 

    foreach($fbdata as $key => $fbdata2) { 
     $fb_user[$key] = $fbdata2; 
    } 
} 

} 
else { 
    $facebook_session = 0; 
} 

PS:IM当然使用安全画布URL

请帮忙! 在此先感谢

+0

欢迎来到SO!也许你正在使用response.session?会话已弃用,并由response.authResponse取代。你必须分享一些代码,看看我们如何能够帮助你解决你的问题。 – Philip

+0

使用此通道谢谢菲利普 林: 这里怎么添加代码? – Addicted2Web

+0

我已经编辑我的问题到广告代码 – Addicted2Web

回答

0

首先,您是使用Firefox,Chrome还是Internet Explorer? FB-connect在使用IE时遇到了一些问题。为了解决这个问题,你需要补充一点:

header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 

你的头,所以Internet Explorer可以在您的IFrame使用会话。

+0

即时测试在Firefox中?为什么?这应该适用于所有浏览器! – Addicted2Web

+0

是的,你会有ie问题。上面的代码将帮助你。 :)请记住,如果某件事情在ie中不起作用。并在Chrome和Firefox中工作。上面的代码是解决方案:) – MrTouch

+0

谢谢Aytac – Addicted2Web