나는 어떤 문제가 발생했는지에 대한 대안을 찾았는지 궁금했습니다. 사용자가 Facebook에 로그인하지 않은 경우 FB.init 중에 auth.statusChange가 실행되지 않습니다.
는 아래 코드의 예를 보자<script>
window.fbAsyncInit = function() {
FB.init({
appId : '[----removed-------]', // App ID
channelUrl : 'http://localhost/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies
xfbml : true // parse XFBML
});
// Additional initialization code here
FB.Event.subscribe('auth.statusChange',fbLoginStatus);
console.log("getloginstatus");
FB.getLoginStatus(fbLoginStatus);
</script>
true로 설정된 상태 FB.init를 사용하여, 본질적으로 facebook documentation에 따라 getLoginStatus()
를 호출합니다. 그러나, apparently intended behaviour이 이 아니며, auth.statusChange
이 기본값 인 'unknown', 및이기 때문에 auth.statusChange
이벤트를 트리거합니다. '로그인하지 않음'의 값도 '알 수 없음'입니다.)
따라서 FB.getLoginStatus()
에 과과 같이 상태를 true로 설정하여 전화를 걸어야 만 페이스 북에 로그인하지 않은 사용자에게 응답하고 싶습니다.
사용자가 "로그 아웃"이외의 다른 경우 함수가 두 번 호출되는 문제가 있습니다.
이런 일을 막기위한 좋은 방법이 있습니까? 나는 내 유일한 옵션은 인증 변경 이벤트를 처리하는 다른 함수를 호출 할 수있을 것 같아요 ..
이상한 -이 버그가 제거 된 것 같습니다. 이 모든 일은 재앙입니다. 나는'status : true'가 실제로 유용 할 때를 알지 못한다. 그들은 이렇게 말합니다. 'FB에서 상태를 true로 설정하면.init() 호출을 사용하면 SDK는 init 이후 즉시 현재 사용자에 대한 정보를 얻으려고 시도합니다. 이렇게하면 Facebook 로그인을 사용하는 경우 로그인 한 사용자의 상태를 확인하는 데 걸리는 시간을 줄일 수 있지만 소셜 플러그인 만있는 페이지에는 유용하지 않습니다. ' 응답이 캐싱된다는 의미입니까? –