2012-08-12 14 views
0

내 웹 페이지에 Facebook 로그인/등록 플러그인을 포함하려고합니다. 로그인을 클릭하거나 로그 아웃을 클릭하면 해당 FB.Event.subscribe이 트리거되어야합니다. 하지만 제 경우에는 로그인과 로그 아웃이 성공적으로 이루어집니다. 그러나 그 사건들 중 아무 것도 유발되지 않습니다. 사람이 여기에 나를 도와 수 있다면 FB.Event.subscribe - 이벤트가 트리거되지 않습니다.

<div id="fb-root"></div> 
window.fbAsyncInit = function(){ 
    FB.init({ 
     appId : 'xxxxxxxxxxxxxxxxxxxx', 
     status : true, 
     cookie : true, 
     oauth : true, 
     xfbml : true 
    }); 

    FB.Event.subscribe('auth.login', function(response) { 
     FB.api('/me', function(response) { 
     alert('You have successfully logged in, '+response.name+"!"); 
     }); 
    });  

    FB.Event.subscribe('auth.logout', function(response) { 
     FB.api('/me', function(response) { 
      alert('You have successfully logged out, '+response.name+"!"); 
     }); 
    }); 

    FB.getLoginStatus(function(response) { 
     if (response.session) { 
      alert('Hello'); 
     } 
    }); 
}; 

(function() { 
    var e = document.createElement('script'); 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
}()); 

그것은 좋은 것, 코드를 보자. 미리 감사드립니다.

답변

0

이러한 이벤트는 사용자 상태가 변경 될 때만 트리거됩니다.

예를 들어 auth.login의 경우 사용자가 페이지를 승인하지 않고 권한을 부여한 경우 이러한 변경이 발생합니다. 이 처음에는 사용자가 귀하의 페이지에 대한 페이스 북 쿠키 값을 가지고 있지 않습니다. 사용자가 페이지를 승인하면 쿠키 값이 FB JS SDK에 의해 쓰여지고 스크립트는 auth.login 변경 이벤트를 감지합니다. 다음 번에 사용자가 다시 방문하면 쿠키 값이 이미 있어야하며 상태가 변경되지 않으므로 이벤트가 트리거되지 않습니다.

사용자가 이미 앱을 승인했지만 쿠키를 정리 한 경우에도 auth.login 이벤트가 발생합니다. 다음 번 방문에서 FB JS SDK는 쿠키를 다시 작성해야하며 이벤트가 발생합니다.

나는 이것을 사용하지 않기 때문에 auth.logout 이벤트에 대해 확신 할 수 없지만, 귀하의 앱과 관련이 없지만 사용자의 페이스 북 계정의 세션 상태는 알고 있습니다.

스크립트가 실행되는 동안 페이지의 쿠키 값 변경 사항을 모니터링하여 이벤트가 발생할 때 더 잘 이해할 것을 권장합니다.

관련 문제