0

페이스 북 사용자가 로그인 한 후 리디렉션하려고합니다. 로깅을 위해 developers.facebook.com에서 jssdk 용 샘플 코드를 사용한 다음 특정 사용자를 리디렉션하도록 추가했습니다.Facebook 자바 스크립트 SDK 리디렉션이 작동하지 않습니다.

var uid = response.authResponse.userID; 
      var accessToken = response.authResponse.accessToken; 

      if(uid == '**********'){ 
      window.location.replace('http://stackoverflow.com/'); 
      } 

그러나 작동하지 않습니다. 당신이 오히려 replace() 메서드보다 성공적인 UID 비교

window.location = 'stackoverflow.com/'; 

더 전통적인을 시도하는 경우

<html> 
<head></head> 
<body> 
<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
    appId  : '************', 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : true // parse XFBML 
    }); 

    // Here we subscribe to the auth.authResponseChange JavaScript event. This event is fired 
    // for any authentication related change, such as login, logout or session refresh. This means that 
    // whenever someone who was previously logged out tries to log in again, the correct case below 
    // will be handled. 
    FB.Event.subscribe('auth.authResponseChange', function(response) { 
    // Here we specify what we do with the response anytime this event occurs. 
    if (response.status === 'connected') { 
     // The response object is returned with a status field that lets the app know the current 
     // login status of the person. In this case, we're handling the situation where they 
     // have logged in to the app. 
     var uid = response.authResponse.userID; 
     var accessToken = response.authResponse.accessToken; 

     if(uid == '**********'){ 
     window.location.replace('http://stackoverflow.com/'); 
     } 
     testAPI(); 
    } else if (response.status === 'not_authorized') { 
     // In this case, the person is logged into Facebook, but not into the app, so we call 
     // FB.login() to prompt them to do so. 
     // In real-life usage, you wouldn't want to immediately prompt someone to login 
     // like this, for two reasons: 
     // (1) JavaScript created popup windows are blocked by most browsers unless they 
     // result from direct interaction from people using the app (such as a mouse click) 
     // (2) it is a bad experience to be continually prompted to login upon page load. 
     FB.login(); 
    } else { 
     // In this case, the person is not logged into Facebook, so we call the login() 
     // function to prompt them to do so. Note that at this stage there is no indication 
     // of whether they are logged into the app. If they aren't then they'll see the Login 
     // dialog right after they log in to Facebook. 
     // The same caveats as above apply to the FB.login() call here. 
     FB.login(); 
    } 
    }); 
    }; 

    // 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)); 

    // Here we run a very simple test of the Graph API after login is successful. 
    // This testAPI() function is only called in those cases. 
    function testAPI() { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
    }); 
    } 
</script> 

<!-- 
    Below we include the Login Button social plugin. This button uses the JavaScript SDK to 
    present a graphical Login button that triggers the FB.login() function when clicked. --> 

<fb:login-button show-faces="true" width="200" max-rows="1"></fb:login-button> 
</body> 
</html> 

답변

2

더 많은 행운을 가질 수있다 :

여기에 전체 코드입니다.

관련 문제