2016-08-10 2 views
0

나는 페이스 북페이스 북 SDK는 : 로그 아웃 자동으로

에서 자동으로 사용자 로그를로드 할 때이 코드

window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'abc123456789', 
     xfbml  : false, 
     version : 'v2.7', 
     status  : true 
    }); 
    FB.logout(); 
}; 

(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/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

을 시도했지만 작동하지 않는 페이지를 구축 할 필요가있다. FB.logout()이 호출되면 FB API는 사용자의 세션을 알지 못합니다.

내가 시간

그것은 작동
setTimeout(function(){ 
    FB.logout(); 
}, 3000); 

의 임의의 기간 후에 FB.logout()를 호출합니다. 사용자 정보로드가 완료된시기를 알 수있는 방법이 있습니까?

사용자가 로그인되어있는 경우 가

답변

0

사용 FB.getLoginStatus가 확인이 FB.getLoginStatus의 콜백 함수에 FB.logout를 호출하는 일을해야합니다. https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus 예를 들어

:

FB.init({ 
    appId  : 'abc123456789', 
    xfbml  : false, 
    version : 'v2.7', 
    status  : true 
}); 
FB.getLoginStatus((response) => { 
    if (response.status === 'connected') { 
     FB.logout(); 
    } 
}, true); 
+0

FB.getLoginStatus()는 항상 undefined를 반환 –

+0

테스트 링크가 있습니까? getLoginStatus는 로그인을 검사 할뿐만 아니라 사용자 세션도 새로 고칩니다. 그래서 제대로 로그인했다면 작동 할 것입니다. – luschn

+2

getLoginStatus를 true로 두 번째 매개 변수로 전달하십시오. 실제로 페이스 북에서 상태를 확인하는 새로운 요청을 수행하지만 캐시 상태에 의존하지는 않습니다. – CBroe