2011-08-29 7 views
10

Facebook과 통합되어 사용자의 FB 세션을 가져 오는 중입니다. 내가 이해하는 한, 일반적인 사용 시나리오는 다음과 같습니다.사용자가 Facebook에 로그인하지 않은 경우 FB.getLoginStatus가 실행되지 않습니다.

  1. 전화 FB.init()
  2. 전화 FB.getLoginStatus하면에게 적절한 콜백을 제공합니다.

다음 코드 (응용 프로그램 ID)를 실행했습니다. 채워진 _response.authResponse_을 반환 - 사용자가 이미 예상대로 다음 모든 작품 같은 브라우저 세션에서 페이스 북에 로그인 한 경우

<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 
    <!-- 

    function init(){ 
     FB.init({ 
      appId : '9999999999999', 
      status : true, // check login status 
      cookie : true, // enable cookies to allow the server to access the session 
      xfbml : true, // parse XFBML 
      channelUrl : 'http://127.0.0.1:8888/channel.html', // custom channel 
      oauth : true // enable OAuth 
     }); 
     alert('going to call FB.getLoginStatus '); 

     FB.getLoginStatus(function(response) { 
      alert('whoo hoo!!! getLoginStatus called the callback'); 
     }); 
    } 
    init(); 
    //--> 
</script> 

. 그러나 사용자가 Facebook에 로그인하지 않으면 콜백이 전혀 트리거되지 않습니다. 브라우저 네트워크 로그를 확인해 보면 Facebook이 다음과 같은 응답을 반환하는 것으로 확인됩니다 (http://www.facebook.com/dialog/oauth?).

Application Error: There was a problem getting data for the application you requested. The application may not be valid, or there may be a temporary glitch. Please try again later.

Chrome 및 Firefox (Mac)에서 확인했습니다.


업데이트

내가 반응 모두에게 감사의 말씀을 전합니다.

Ben 님의 댓글이 답을 갖고 있습니다.

감사합니다. Ben - 나를 많이 좌절 시켰습니다. 이벤트를로드 강제

+12

앱이 샌드 박스 모드입니까? 그렇다면 다음과 같은 버그가있을 수 있습니다. http://bugs.developers.facebook.net/show_bug.cgi?id=19359 –

+0

channelUrl을 루프백으로 사용하고 있습니까? 아니면 샘플 용입니까? 나는 루프백이 그 기능을 위해 작동한다고 믿지 않는다. –

+0

channelUrl의 사용법은 [here] (https://developers.facebook.com/docs/reference/javascript/FB.init/)에서 설명합니다. 분명히로드 시간이 빨라지고 몇 가지 문제를 피할 수 있습니다. 내가 개발하는 동안 아무것도하지 않는다면 정말 신경 쓰지 않아도됩니다. –

답변

11

원인은 최근 bug이며 샌드 박스 모드에만 영향을줍니다. 나는 샌드 박스 모드를 해제하고 매력처럼 작동했습니다.

+1

나는 너에게 키스 할 수있어! 고맙습니다. 나는 모든 밤을 보내고 물건을 시험해보고 ... 나는 무슨 일이 일어 났는지 이해하지 못했다. 좋은 직장 페이스 북. 6 개월 후, 문제는 여전히 남아 있습니다 ... –

+1

링크가 이제 종료되었습니다. –

0

보십시오 : 그것은 FB.getLoginStatus에 명시되어

FB.getLoginStatus(function(response) { 
    alert('whoo hoo!!! getLoginStatus called the callback'); 
}, true); 

.

일부 상황에서는 이벤트가 실행되지 않을 수 있습니다.

+0

그 하나, 기쁨이 없었어요 –

+0

짐을 강제로 추가하면 나를 위해 응답 문제가 해결되었습니다! –

관련 문제