2012-05-18 2 views
0

사실 해결책을 찾으려고했지만 아무것도 찾지 못했고 여기서 해결책을 찾았 으면합니다!페이스 북에 연결 iframe

내 웹 사이트에서 facebook connect를 사용합니다. 페이스 북에 로그온 할 때 모든 것이 올바르게 작동합니다. 페이스 북 연결을 통해 내 사이트에 자동 로그인되며 그 반대의 경우도 마찬가지입니다.

이제 페이스 북 응용 프로그램을 만들려고했지만 다음과 같은 문제가 있습니다. 나는 iframe 내부에서 실행하려고하지만 불행히도 자동으로 로그인하지 않습니다. 가끔은 작동하지만 때로는 아무 일도 일어나지 않습니다. 이 메시지 : 은 (페이스 북 세션을 가져올 수 없습니다 귀하의 서버 정보를 검색 할 사용자에 연결할 수 안전하게 페이스 북을하지 않을 수 있습니다.).

일부 코드 메신저를 사용 :

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 : 메신저 물론 안전한 캔버스 URL을 사용하여

도와주세요! 미리 감사드립니다.

+0

안녕하세요! 아마도 당신은 response.session을 사용하고 있습니까? 세션은 더 이상 사용되지 않으며 response.authResponse로 대체됩니다. 우리는 당신의 질문에 당신을 도울 수있는 방법을보기 위해 몇 가지 코드를 공유해야합니다. – Philip

+0

감사합니다. philip 이 채널을 사용하고 있습니다 : 여기에 코드를 추가하는 방법? – Addicted2Web

+0

파이어 폭스에서 광고 테스트 – Addicted2Web

답변

0

먼저 Firefox, Chrome 또는 Internet Explorer를 사용하고 있습니까? 나는 IE와 함께 그것을 사용하여 FB 연결에 몇 가지 문제가 있었다. 헤더에

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

을, 그래서 인터넷 익스플로러는 iframe에 세션을 사용할 수 있습니다 그것을 해결하기 위해이를 추가해야합니다.

+0

에 대한 내 질문을 수정 했습니까? 왜 ? 이것은 모든 브라우저에서 작동해야합니다 !! – Addicted2Web

+0

예. 그러면 문제가 생깁니다. 위의 코드는 도움이 될 것입니다. :) 뭔가가 작동하지 않는다면 즉 염두에 두십시오. 크롬과 파이어 폭스에서 작동합니다. 위의 코드는 해결책입니다 :) – MrTouch

+0

감사합니다 Aytac – Addicted2Web

관련 문제