私は大きな問題を抱えていて、何日も修正しようとしましたが、できませんでした。
Facebookでアプリケーションにログインするための次のコードを取得しました。ページがリロードされているとき (window.location.reload();) が API /me を更新していないため、常にログイン ボタンが表示されることを除いて、すべてが正常に機能しています。
例外: F5 をクリックしてページを更新すると、問題なく動作します
誰かがそれを助けることができれば幸いです
ありがとう
<?php
require 'facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxx',));
$user = $facebook->getUser();
// login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
$user = $facebook->getUser();
// Session based API call.
if ($user) {
try {
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
$user = null;
}
}
?>
<!DOCTYPE html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>test full name and photo</title>
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $facebook->getAppId(); ?>', // App ID
channelURL : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : true, // enable OAuth 2.0
xfbml : true // parse XFBML
});
// whenever the user logs in, we refresh the page
FB.Event.subscribe('auth.login', function() {
window.location.reload();
});
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/fr_CA/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
function fbLogin() {
FB.login(function(response) {
if (response.status == 'connected') {
window.location.reload(); }
else {
alert('Try to connect');
}
}, {scope: 'email,user_likes'});
}
</script>
<?php if ($user): ?>
USER LOGGIN
<?php else: ?>
<div>
Connexion button: <INPUT TYPE="BUTTON" ONCLICK="fbLogin()" value="login">
</div>
<?php endif ?>
<?php if ($user): ?>
<?php $uid = $me['id']; ?>
<div align="center">
<img id="image" src="https://graph.facebook.com/<?php echo $uid; ?>/picture" />
<div id="name"><?php echo $me['name']; ?></div>
<div id="name">UID: <?php echo $me['id']; ?></div>
<div id="name">Courriel <?php echo $me['email']; ?></div>
</div>
<?php endif ?>
</body>
</html>