Получить аутентифицированную информацию пользователя из Facebook - PullRequest
0 голосов
/ 31 декабря 2011

Я не могу получить какую-либо информацию о зарегистрированном пользователе для моего веб-сайта, например, предупреждение в моем примере просто говорит "undefined" вместо имени.Я не знаю, что я делаю неправильно, поскольку я следую примеру кода к букве.

Это от <body> страницы.

<div id="fb-root"></div>
        <script>
            window.fbAsyncInit = function() {
                FB.init({
                    appId      : 'blahblah',
                    status     : true, 
                    cookie     : true,
                    xfbml      : true,
                    oauth      : true
                });

                FB.api('/me', function(response) {
                    alert(response.name);
                });
            };
            (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>
        <div class="fb-login-button" data-show-faces="true" data-width="200" data-max-rows="1"></div>

Iмогу войти в систему, но предупреждение никогда не говорит мое имя.

Ответы [ 2 ]

0 голосов
/ 31 декабря 2011

При запуске вашего кода вы сначала захотите проверить FB.getLoginStatus

См .: https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

Тогда ваш код может выглядеть примерно так:

FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
        var uid = response.authResponse.userID;
        var accessToken = response.authResponse.accessToken;

         FB.api('/me', function(response) {
            alert(response.name);
         });
    } else {
        FB.login( see documentation for FB.login );
    }
 });
0 голосов
/ 31 декабря 2011

Вызов FB.api происходит после вызова FB.init.Она никак не связана с кнопкой входа в систему, поэтому она вызывается до того, как вы вошли в систему. Если вы хотите, чтобы это происходило при нажатии, вам нужно изменить код, чтобы он не пытался выполняться до тех пор, пока вы не выполнитеВы вошли в систему.

Попробуйте изменить код на:

FB.Event.subscribe('auth.login', function(response) {
   FB.api('/me', function(response) {
      alert(response.name);
   });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...