2012-10-21 5 views
0

로그인 할 때 facebook javascript sdk를 사용하고 다른 프로세스를 위해 php sdk를 사용하고 있습니다.사용자가 페이스 북에 로그인 한 후에도 로그인 버튼이 표시됩니다.

<?php 
require_once('AppInfo.php'); 
require 'src/facebook.php'; 
$facebook = new Facebook(array(
'appId' => '*****', 
'secret' => '*****', 
)); 
// See if there is a user from a cookie 
$user = $facebook->getUser(); 
if ($user) { 
try { 
// Proceed knowing you have a logged in user who's authenticated. 
$user_profile = $facebook->api('/me'); 
} catch (FacebookApiException $e) { 
// If the call fails we check if we still have a user. The user will be 
// cleared if the error is because of an invalid accesstoken 
if (!$facebook->getUser()) { 
    header('Location: '. AppInfo::getUrl($_SERVER['REQUEST_URI'])); 
    exit(); 
} 
} 
} 
?> 
<!DOCTYPE html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
<title>Facebook App</title> 
<h1>Facebook App</h1> 
</head> 
<body> 
<div id="fb-root"></div> 
<script type="text/javascript">    
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId: '<?php echo $facebook->getAppID() ?>', 
     cookie: true, 
     xfbml: true, 
     status: true, 
     channelUrl : '//<?php echo $_SERVER["HTTP_HOST"]; ?>/fb/channel.html' 
    }); 

    FB.Event.subscribe('auth.login', function(response) { 
     window.location.reload(); 
    }); 
     FB.Canvas.setAutoGrow(); 
    }; 
     // Load the SDK Asynchronously 
    (function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 

</script> 
<?php if (isset($basic)) { ?> 
<h1>Hi</h1> 

    <div> 
    <h1>Welcome Hero</h1> 
    <p class="tagline"> 
     This is your app 
    </p> 
    </div> 
<?php } else { ?> 
<div> 
    <h1>Welcome Villian</h1> 
    <div class="fb-login-button" data-scope="user_likes,user_photos,publish_stream"></div> 
    </div> 
    <?php echo $user_profile[id]; 
echo "hhhh";} ?> 
</body> 
    </html> 

문제는 내가 항상 그렇지 않은 부분의 실행을 볼 수 있습니다 : 이 내 샘플 코드입니다. 사용자가 로그인 한 후에도 다른 부분이 표시됩니다. 누군가 나를 도와주세요

답변

0

이것은 PHP SDK에 문제가 있습니다. phpsdk와 함께 js sdk 사용

+0

js sdk 및 php sdk를 사용하는 방법에 대한 작업 예제가 있습니까? – Pratik

관련 문제