2011-09-09 9 views
2

사용자가 쉽게 로그인하거나 등록 할 수 있도록 사이트에서 페이스 북 로그인을 사용하고 있지만 페이스 북에 로그인하면 로그인 버튼이 표시되지 않습니다. 로그 아웃하면 예상대로 표시됩니다.Facebook 로그인 버튼이 보이지 않습니다.

이전에 사용 했었지만 어쩌면 2 개월 전 이었지만 지금은 작동하지 않습니다.

FB : 로그인 태그는 다음과 같이 사용됩니다

<fb:login-button onlogin="myJScript();" /> 

...

<script type="text/javascript"> 
window.fbAsyncInit = function() { 
    FB.init({appId: '#{serviceBean.FACEBOOK_API_KEY}', status: true, cookie: true, 
      xfbml: true}); 
    }; 
    (function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + 
     '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 

그래서 아무것도 특별한 ...

뭔가이 FB의 사용에 변경되었습니다 :로그인?

+0

자바 스크립트 콘솔에 erors가 있는지 확인하십시오. 또한 AppId가 있는지 확인하십시오. – Neelam

+0

오류가없고 AppId가 있습니다. 내가 페이스 북에서 로그 아웃 할 때 작동한다. 그러나 내 페이지에서 동일한 html은 물론 그 렌더링에 관계없이 렌더링됩니다. –

+0

Facebook 로그인 버튼을 사용하는 대신 다른 방법으로 갈 수도 있습니다. 페이스 북 이미지가있는 정상 asp buton을 가질 수 있으며 페이스 북 코드가이 버튼의 클라이언트 클릭 이벤트에서 실행됩니다.이 방법으로 aspx 당신이 원하는 방식으로 버튼을 누르십시오. 내 웹 사이트에서 어떻게 그랬습니까. 대답에 대해 – Neelam

답변

0

나는이 행동을보고 있었으므로 그 원인을 발견하면 알려 주시기 바랍니다. 한편

, 내가 해결 해낸 : 사용자가 페이스 북에 로그인하면

이 코드는 먼저 (즉, 버튼이 가끔 표시되지 않는 경우에만 것 같다)를 참조 할 수 있습니다. 그런 다음 Facebook 로그인 버튼이 성공적으로 나타나는지 확인합니다. 나타나면 "백업 버튼"을 숨 깁니다.

* 나는 ".fb_button"의 클래스 (버튼의 존재를 모든 요소를 ​​확인하는 jQuery 코드 ($ (...)를 사용하고 있습니다 :

사용 JS 로그인 상태를 확인합니다) 및 백업 버튼을 숨길 수는 jQuery를 사용하지 않는 경우, 당신은 몇 가지 표준 자바 스크립트를 사용해야합니다

function fbLoginBandaid() { 

FB.getLoginStatus(function(response) { 
    console.log(response); 
    if ((response.status)&&(response.status=='connected')) { 
     //They are logged into Facebook and are connected to our site. 
    //if the Facebook button did not render, we'll show the backup 
    if ($('.fb_button').length > 0) { 
     $('.fbloginbackup').hide(); 
    } 
    } 
    } else if ((response.status)&&(response.status=='notConnected')){ 
     //They are logged into facebook but not connected to this site 
    //if the Facebook button did not render, we'll show the backup 
    if ($('.fb_button').length > 0) { 
     $('.fbloginbackup').hide(); 
    } 
    } 
}); 

} 

FB 초기화 코드를 :..

이제
window.fbAsyncInit = function() { 

    /*...ALL YOUR NORMAL CODE HERE */ 

    fbLoginBandaid(); //bandaid fixes facebook button not showing sometimes. This forces display of a backup button we've made. Sometimes, this cuases two working buttons to show: ours and the Facebok one that should always be appearing. 
}; 

는에 "백업"버튼을 넣어 귀하의 HTML :

<!--Backup Button --> 
    <a class="fbloginbackup" title="Login with Facebook" href="#" onclick="INSERT_YOUR_LOGIN_SCRIPT(); return false;"><img src="insert_your_button_here.png" width="154" height="22" /></a> 
    <!-- Button that was supposed to work all the time --> 
    <fb:login-button length="long" autologoutlink="false" onlogin="fbLogin()"></fb:login-button> 

아마도 Facebook 로그인 창을 표시하지 않으므로 이미 Facebook에 로그인 한 사용자의 로그인 스크립트를 사용할 수 있습니다.

희망이 도움이됩니다.

0

다음은 이전에 추가 한 Javascript 솔루션보다 간단하고 더 효과적 일 수있는 CSS 전용 솔루션입니다.

제출 한 다른 답변과 마찬가지로 "백업"버튼을 만들지 만 필요에 따라 자바 스크립트를 사용하여 fbml Facebook 버튼 뒤에 배치합니다.

: 당신이해야 할 모든 (예는 "facebookconnectbutton는"아래의 div에)

페이스 북 버튼이 표시 실패 할 때마다 이런 식으로, 우리의 백업 버튼이 일을 저장할 수있을 것입니다 버튼 주위에 컨테이너를 추가입니다

HTML

<div id="facebookconnectbutton"> 
    <!--Backup Button --> 
    <a class="fbloginbackup" title="Login with Facebook" href="#" onclick="INSERT_YOUR_LOGIN_HANDLER_(); return false;"><img src="/images/fblogin_backup.png" width="154" height="22" /></a> 
    <!-- Button that was supposed to work all the time. Use your code for this, not mine. --> 
    <fb:login-button length="long"></fb:login-button> 
</div> 

아마, 당신은 페이스 북 세션을 가진 사람은 위의 페이스 북 로그인 버튼을 클릭하면 로그인을 처리하는 JS 기능을 가지고있다.당신이 show-faces 속성이 true로 설정하고 사용자가 이미 로그인되어있는 경우 페이스 북의 문서에 따르면 CSS

/* This is used to put the "original" fbml facebook button on top of our "backup" */ 
#facebookconnectbutton { 
    position:relative; 
    height: 22px; /*whatever size your button is */ 
    width: 154px; /*whatever size your button is */ 
} 
#facebookconnectbuttonsignin { 
    margin: 0; 
} 
.fbloginbackup { 
    position:absolute; 
    top: 0; 
    left: 0; 
    width: 154px; /*whatever size your button is */ 
    height:22px; /*whatever size your button is */ 
} 
.fb_button { 
    position:absolute; 
    top: 0; 
    left: 0; 
    width: 154px; /*whatever size your button is */ 
    height:22px; /*whatever size your button is */ 
    z-index:101 
} 
/* End FB bandaid*/ 
+0

감사합니다. 여전히 문제가 발생하여 업데이트 된 fb 스크립트로 시도하고 변경 사항이 있는지 확인하십시오. 작동하지 않는 경우 솔루션을 사용해 보겠습니다. –

+0

Balazs,이 문제는 저와 제 고객을 정말 괴롭 히고 있습니다. 그래서 당신이 뭔가를 찾고 알려주시기 바랍니다. 그 동안,이 bandaid 솔루션이 효과가 있다면 upvote하십시오. – sersun

+0

나는 이것이 도움이 될 것이라고 확신한다 : http://facebook.stackoverflow.com/questions/7500745/login-button-doesnt-work-when-user-is-logged-in-facebook/7511230#7511230 –

6

는 더 로그인 버튼이 표시되지 않습니다. 사용자가 로그인하면 너무 로그인 버튼도 표시됩니다 false로 변경합니다

당신은 여기에 대한 추가 정보를 찾을 수 있습니다

:. https://developers.facebook.com/docs/reference/plugins/login/

+0

예 .. . 표시 할 얼굴이 없으면 로그인 버튼이 나타납니다! 어떻게 해결할 수 있을까요? –

+0

감사! 그것은 나를 미치게했다. .. – javs

-1

이제까지 돈 당신이 경우 표시되지 않습니다이 SDK에서 버튼을 적어도 아파치 서버 (별칭 로컬 호스트 : xxxx)를 통해 열지 마십시오.

관련 문제