Я бы использовал JS-SDK , идеальный пример - пример PHP-SDK Facebook :
<code><?php
require '../src/facebook.php';
$facebook = new Facebook(array(
'appId' => '344617158898614',
'secret' => '6dc8ac871858b34798bc2488200e503d',
));
// 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) {
echo '<pre>'.htmlspecialchars(print_r($e, true)).'
';
$ user = null;
}
}
?>
<! DOCTYPE html>
<? php if ($ user) {?>
Ваш профиль пользователя
<?php print htmlspecialchars(print_r($user_profile, true)) ?>
<? php} else {?>
<Фб: войти кнопки> </ FB: войти кнопки>
<? php}?>
window.fbAsyncInit = function () {
FB.init ({
appId: '<? php echo $ facebook-> getAppID ()?>',
cookie: правда,
xfbml: true,
oauth: правда
});
FB.Event.subscribe ('auth.login', function (response) {
window.location.reload ();
});
FB.Event.subscribe ('auth.logout', function (response) {
window.location.reload ();
});
};
(function () {
var e = document.createElement ('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById ( 'FB-корень') AppendChild (е).
} ());
Теперь нажимаем fb:login-button
:
<fb:login-button scope="offline_access,publish_stream,sms,email,user_birthday,user_photos,user_photo_video_tags,user_checkins,friends_checkins"></fb:login-button>
Откроется всплывающее окно Facebook, и после процесса авторизации всплывающее окно закроется автоматически, и будет вызвано событие auth.login
, я бы изменил метод перезагрузки window.location.reload();
на вызов ajax, чтобы сделать все, что вы делает.