2013-08-03 41 views
11

Tôi mới phát triển các trang web bằng Facebook SDK. Vì vậy, hãy chịu với tôi.getLoginStatus luôn trả về not_authorized

Dưới đây là mã đơn giản của tôi để xác minh rằng tôi đã đăng nhập vào Facebook. Vì một lý do nào đó, tôi luôn nhận được phản hồi 'not_autherized', mặc dù tôi là nhà phát triển ứng dụng duy nhất của tôi. Số ứng dụng tôi cung cấp là chính xác.

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    </head> 
    <body> 
    <div id="fb-root"></div> 
    <script> 
     window.fbAsyncInit = function() { 
      // init the FB JS SDK 
      FB.init({ 
       appId  : 'censored app id', // App ID from the app dashboard 
       status  : true,    // Check Facebook Login status 
       cookies : true, 
       xfbml  : true    // Look for social plugins on the page 
      }); 

      FB.getLoginStatus(checkLoginStatus); 
      function checkLoginStatus(response) { 
       if (response && response == 'connected') { 
        alert('User is authorized!'); 
       } else { 
        alert('User not authorized!!!'); 
       } 
      }; 

      // Additional initialization code such as adding Event Listeners goes here 
     }; 

     // Load the SDK asynchronously 
     (function(d, s, id) { 
      if (d.getElementById(id)) return; 

      var js = d.createElement(s); js.id = id; 
      js.src = "//connect.facebook.net/en_US/all.js"; 

      var fjs = d.getElementsByTagName(s)[0]; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 
    </script> 
    </body> 
</html> 

Có điều gì tôi đã bỏ qua không?

Được đánh giá cao :)

Trả lời

12

Một người bạn đã giúp tôi với điều này. Anh ấy đã chỉ ra một cách hữu ích rằng Facebook đã bỏ quên tài liệu. Khi bạn tạo một ứng dụng facebook mới, sau đó nó không được ủy quyền tự động bởi admin và các nhà phát triển. Ứng dụng được ủy quyền là ứng dụng tồn tại trong danh sách "Cài đặt tài khoản-> Ứng dụng". Nếu nó không có trong danh sách này thì nó không được phép.

Điều này có nghĩa là bạn cần gọi cho FB.login() tại một số thời điểm trong mã của bạn để bật lên cửa sổ ủy quyền người dùng.

Hãy nhớ bạn, điều này nên được gọi từ một nút. Nếu không, cửa sổ bật lên có thể bị chặn.

Hy vọng điều này sẽ giúp người khác nhưng tôi.

Chúc mừng :)

Các vấn đề liên quan