2014-10-06 3 views
0

После того, как вы получили свой ответ от getLoginStatus, есть идея затем вызвать FB.login? В настоящее время, когда я это делаю, код останавливается.Что делать после получения «not_authorized» назад от Facebook Connect login

Вот код, когда они ударяют кнопку FB для входа в систему, которая правильно дает мне ответ ...

function facebookConnectBtnLogin() 
{ 
    FB.getLoginStatus(function(response) 
    { 
     CL(); 
     if (response.status === 'connected') { 

      logFacebookUserIn(response);    
     } else if (response.status === 'not_authorized') { 
     // alert('not_authorized...'); 
     facebookLoginInit(); 
     } else { 
      //alert('not logged into Facebook...'); 
      facebookLoginInit(); 
     } 
    },true); 
} 

И код, который имеет дело с FB.login, который предупреждает «here4», но не 'here5' ...

function facebookLoginInit() 
{ 
    alert('here4'); 
    FB.login 
    (
     function(response) 
     { 
      alert('here5'); 
      CL(); 
      if(response.authResponse) 
      { 
       alert('here6'); logFacebookUserIn(response); 
      } else alert('not connected'); 
     }, 
     { scope: "email" } 
    ); 
} 

Есть ли у меня правильная идея?

Спасибо за ваше время и помощь.

ответ

1

Вы не должны вызывать FB.login в асинхронной функции обратного вызова, ТОЛЬКО при непосредственном взаимодействии с пользователем (щелчок мышью). Браузеры блокируют всплывающее окно FB.login, если вы не назовете его на взаимодействие с пользователем.

С FB.getLoginStatus вы просто проверяете, разрешен ли пользователь, если нет: введите кнопку входа, где пользователь может нажать, чтобы войти в систему. Не рекомендуется показывать диалоговое окно входа в систему, когда пользователь все равно входит в ваше приложение, скажите ему, что такое приложение в первую очередь.

+0

Thanks Luschn. Так что я должен просто прикрепить прослушиватель кнопок к моей функции facebookLoginInit()? – Shaun

+0

Да, используйте его только для взаимодействия с пользователем. используйте любую кнопку, как показано на рисунке, и вызовите функцию, когда пользователь нажимает эту кнопку. – luschn

+0

Cheers Luschn - Я попробую это сейчас. – Shaun

Смежные вопросы