Нужно перезагрузить страницу 2 раза, чтобы получить ID пользователя и информацию - PullRequest
1 голос
/ 18 января 2012

Я пытаюсь интегрировать Facebook Connect на моем сайте. Как только я войду в Facebook, а затем подпишусь, событие сработает и его response.status вернет «подключено» Затем я перезагрузил страницу, но я не получил никаких пользовательских данных. Если я обновлю страницу вручную, я получу логин только в информации пользователя

Мой код:

<code>$user = $facebook->getUser();
if ($user) {
    try {
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
        //print htmlspecialchars(print_r($user_profile, true));
    } catch (FacebookApiException $e) {
        echo '<pre>'.htmlspecialchars(print_r($e, true)).'
'; $ user = null; } }
<? php if ($ user) {?> Ваш профиль пользователя
        <?php print htmlspecialchars(print_r($user_profile, true)) ?>
      
<? php} // else {?> <Фб: войти кнопки> </ FB: войти кнопки> <? php //}?> window.fbAsyncInit = function () { FB.init ({ appId: 'YOUR_APP_ID', статус: правда, cookie: правда, xfbml: true, oauth: правда, }); FB.Event.subscribe ('auth.login', function (response) { оповещение («статус» + response.status); предупреждение ( 'перезагрузка'); window.location.reload (); } }; (Функция (д) { var js, id = 'facebook-jssdk'; if (d.getElementById (id)) {return;} js = d.createElement ('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; d.getElementsByTagName ( 'голова') [0] .appendChild (JS); }(документ));

Пожалуйста, помогите мне в решении этой проблемы

1 Ответ

2 голосов
/ 18 января 2012

Возможно, вы обновляете страницу слишком быстро (поэтому файлы cookie еще не установлены Facebook JS-SDK).

Чтобы убедиться, что куки установлены правильно, вы можете использовать что-то вроде этого:

FB.Event.subscribe('auth.login', function(response) {
  if (response.status == 'connected'){
    FB.getLoginStatus(function(){
      window.location.reload();
    });
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...