Facebook과 통합되어 사용자의 FB 세션을 가져 오는 중입니다. 내가 이해하는 한, 일반적인 사용 시나리오는 다음과 같습니다.사용자가 Facebook에 로그인하지 않은 경우 FB.getLoginStatus가 실행되지 않습니다.
- 전화
FB.init()
- 전화
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 - 나를 많이 좌절 시켰습니다. 이벤트를로드 강제
앱이 샌드 박스 모드입니까? 그렇다면 다음과 같은 버그가있을 수 있습니다. http://bugs.developers.facebook.net/show_bug.cgi?id=19359 –
channelUrl을 루프백으로 사용하고 있습니까? 아니면 샘플 용입니까? 나는 루프백이 그 기능을 위해 작동한다고 믿지 않는다. –
channelUrl의 사용법은 [here] (https://developers.facebook.com/docs/reference/javascript/FB.init/)에서 설명합니다. 분명히로드 시간이 빨라지고 몇 가지 문제를 피할 수 있습니다. 내가 개발하는 동안 아무것도하지 않는다면 정말 신경 쓰지 않아도됩니다. –