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>
문제는 내가 항상 그렇지 않은 부분의 실행을 볼 수 있습니다 : 이 내 샘플 코드입니다. 사용자가 로그인 한 후에도 다른 부분이 표시됩니다. 누군가 나를 도와주세요
js sdk 및 php sdk를 사용하는 방법에 대한 작업 예제가 있습니까? – Pratik