2012-06-27 3 views
4

Javascript SDK를 사용하여 내 웹 사이트에서 Facebook의 로그인 버튼을 사용하려고합니다. 사용자가 로그온하면 전자 메일 주소를 다시받습니다. 이 작동합니다. 하지만 Facebook 로그인 버튼이있는 페이지에는 내 웹 사이트의 일반 로그인 정보도 있습니다. (사용자 이름 & 암호). 하지만 로그인 페이지로 이동하면 페이지가 자동으로 Facebook 버튼을로드하고 Facebook 로그인 대화 상자가 나타납니다. 하지만이 버튼을 자동으로로드하고 싶지는 않습니다. 나는 그 사용자가 페이스 북의 로그인 버튼을 항상 눌러야한다고 말한다. 이것이 가능한가?Javascript SDK 자동 로그인

<script> 
    window.fbAsyncInit = function() { 
FB.init({ 
     appId: 'MY_APP_ID', // App ID 
     status: true, 
     cookie: true, 
     xfbml: true, 
     oauth: true, 

}); 
FB.getLoginStatus(function(response) { 
    FB.login(function(response) { 
    if (response.authResponse) { 
    FB.api('/me', function(response) { 
     alert('Good to see you, ' + response.email + '.'); 
    }); 
    } else { 
    alert('User cancelled login or did not fully authorize.'); 
    } 
}); 
}); 

// Additional initialization code here 
    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
js = d.createElement('script'); js.id = id; js.async = true; 
js.src = "//connect.facebook.net/en_US/all.js"; 
d.getElementsByTagName('head')[0].appendChild(js); 
    }(document)); 
</script> 

답변

5

FB.getLoginStatus 방법은 사용자가 로그인 한 또는

FB.login

가 인증하고 응용 프로그램을 승인 로그인 페이지 메시지를 표시하는 데 사용됩니다 여부를 알고하는 데 사용됩니다

이 내 코드입니다.

당신은 FB.getLoginStatus 메소드를 호출하고 응답을 걱정하지 않고 fb.login 버튼을 항상 실행합니다. 당신은 항상 사용자가 로그인 버튼을 FB.getLoginStatus

사용이 코드를 참고

<html> 
    <head> 
     <title>My Facebook Login Page</title> 
    </head> 
    <body> 

     <div id="fb-root"></div> 
     <script> 
     window.fbAsyncInit = function() { 
      FB.init({ 
      appId  : 'YOUR_APP_ID', // App ID 
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File 
      status  : true, // check login status 
      cookie  : true, // enable cookies to allow the server to access the session 
      xfbml  : true // parse XFBML 
      }); 
     }; 
     // Load the SDK Asynchronously 
     (function(d){ 
      var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
      if (d.getElementById(id)) {return;} 
      js = d.createElement('script'); js.id = id; js.async = true; 
      js.src = "//connect.facebook.net/en_US/all.js"; 
      ref.parentNode.insertBefore(js, ref); 
     }(document)); 
     </script> 

     <div class="fb-login-button">Login with Facebook</div> 

    </body> 
</html> 

사용하지 않는 클릭합니다

: https://developers.facebook.com/docs/guides/web/
체크 인증 섹션

+0

아, 나는 그것을 생각합니다. 아니요. 인증 작동 방식을 이해해야합니다. 예를 들어 사용자 이메일 주소를 얻는 방법을 알지 못합니다. – Ruub

+1

_ "예를 들어 사용자의 이메일 주소를 가져 오는 방법을 알지 못합니까?"- 물론 Graph API를 쿼리하여. 'FB.api ("/ me", function (response) {...});'(그리고 먼저 필요한 권한을 얻는 것을 잊지 마십시오.) – CBroe