Реализация входа в Facebook - PullRequest
0 голосов
/ 11 марта 2012

Будучи новичком в Facebook. Как вы получаете информацию о пользователе после входа в систему? Вот код:

 <html>
<head>
  <title>My Facebook Login Page</title>
</head>
<body>
  <div id="fb-root"></div>
  <script>
    window.fbAsyncInit = function() {
      FB.init({
        appId      : 'APP_ID',
        status     : true, 
        cookie     : true,
        xfbml      : true,
        oauth      : true,
      });
    };
    (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>
  <p><fb:login-button autologoutlink="true"></fb:login-button></p>
</body>

Мне кажется, что я должен подписаться на событие auth.login, а затем использовать FB.api ... здорово, но как ты это делаешь?

Я попробовал следующее:

 <html>
<head>
  <title>My Facebook Login Page</title>
</head>
<body>
  <div id="fb-root"></div>
  <script>
    window.fbAsyncInit = function() {
      FB.init({
        appId      : 'APP_ID',
        status     : true, 
        cookie     : true,
        xfbml      : true,
        oauth      : true,
      });
    };
  FB.auth.login{
        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>
  <p><fb:login-button autologoutlink="true"></fb:login-button></p>
</body>

Спасибо за помощь. И извините, если я выгляжу глупо ...

Ответы [ 2 ]

1 голос
/ 11 марта 2012

После инициализации SDK facebook (используя FB.init ) вы можете начать использовать его для запросов, событий и т. Д.

Документация говорит о 5 Auth Methods . Какой из них вам нужен, зависит от того, что вы хотите сделать, и если пользователь уже авторизовал ваше приложение, а также от разрешений, которые вы собираетесь использовать.

Если пользователь не вошел в ваше приложение, вам нужно использовать login метод:

FB.login(function(response) {
    if (response.authResponse) {
        // logged in
    }
    else {
        // not logged in
    }   
});

Если он уже вошел в систему или вы не знаете, какой у него статус, используйте getLoginStatus :

FB.getLoginStatus(function(response) {
    if (response.status === "connected") {
        // the user is logged in and has authenticated your app
        FB.api("/me", function(apiresponse) {
            console.log("api result: ", apiresponse);
        });
    }
    else if (response.status === "not_authorized") {
        // the user is logged in to Facebook, but has not authenticated your app
    }
    else {
        // the user isn't logged in to Facebook.
    }
});

Для отправки запросов API используйте метод api , как в примере, который я вам дал.

0 голосов
/ 14 марта 2012

Для самых начинающих: мне пришлось поместить кусок кода, который дал мне Низан, и добавить его после вызова FB.init следующим образом:

 <html>
<head>
  <title>My Facebook Login Page</title>
</head>
<body>
 <div id="fb-root"></div>
 <script>
   window.fbAsyncInit = function() {
  FB.init({
    appId      : 'APP_ID',
    status     : true, 
    cookie     : true,
    xfbml      : true,
    oauth      : true,
  });
  FB.getLoginStatus(function(response) {
if (response.status === "connected") {
    // the user is logged in and has authenticated your app
    alert("You are logged in");
}
else if (response.status === "not_authorized") {
    // the user is logged in to Facebook, but has not authenticated your app
}
else {
    alert("You are not logged");
}
});
};
(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>
 <p><fb:login-button autologoutlink="true"></fb:login-button></p>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...