Question

Je prévois d'intégrer un bouton Facebook Connectez-vous sur mon site. En ce moment, j'ai un bouton Facebook Connectez-vous que lorsque vous appuyez, popups une nouvelle fenêtre demandant l'autorisation d'accéder aux informations et le courrier électronique de base de l'utilisateur. Tout fait jusqu'à présent est de http://developers.facebook.com/docs/guides / web / # login . J'utilise PHP (avec le framework CodeIgniter, bibliothèque d'authentification réservoir auth) et jQuery.

Problème: Maintenant, après avoir ajouté le bouton de connexion sur mon site, Facebook n'ont plus d'instructions sur la façon de procéder

  1. Comment puis-je récupérer de facebook pour insérer les informations de l'utilisateur dans ma base de données (si la première visite)
  2. Comment puis-je déterminer que l'utilisateur a autorisé mon site d'accéder à ses informations?
  3. Si l'accès a été accordé, comment puis-je rediriger l'utilisateur vers une nouvelle page?

Je crois savoir qu'il ya eu des changements récents au SDK, et googler tutoriels sur elle me donne des tutoriels qui dit qu'ils sont obsolètes. Toute aide à me diriger dans la bonne direction sera grandement appréciée! Merci!

HTML / JS

<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function() {
        FB.init({
            appId      : '123',
            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>

<div id="splash_fbconnect_login_button" class="fb-login-button" data-scope="email, user_education_history, user_work_history"></div>
Était-ce utile?

La solution

Quick edit: Aller à la https://github.com/facebook/connect-js il en fait un enfer beaucoup plus facile que j'ai trouvé assurez-vous d'avoir la dernière version et utiliser celle de PHP,.

1) Comment puis-je récupérer de facebook pour insérer les informations de l'utilisateur dans ma base de données (si la première visite)

$user_profile['last_name'];
$user_profile['first_name'];
$user_profile['gender']; 

etc.

2) Comment puis-je déterminer que l'utilisateur a autorisé mon site d'accéder à ses informations?

L'API Facebook sait, vous inquiétez pas :-) Do not comme lorsque l'utilisateur clique se connecter un pop-up arrive (comme vous l'avez mentionné dans votre question) et quand ils cliquent permettre son fait.

Une chose que vous devez faire est cependant créer une application dans Facebook sinon il ne fonctionnera pas, je ne suis pas sûr si vous avez fait ceci ou pas aller à https://developers.facebook.com/apps

3) Si l'accès a été accordé, comment puis-je rediriger l'utilisateur vers une nouvelle page?

redirection JavaScript dans une instruction if, c'est ce que le mien ressemble

Assurez-vous de définir des variables ici aussi:

   <?php // Set the variables for the MVC
      $first_name = $user_profile['first_name'];
      $last_name = $user_profile['last_name'];
      $full_name = $first_name . " " . $last_name;
      $fb_id = $user_profile['id'];
      $gender = $user_profile['gender'];



       $SrcUser = mysql_query("SELECT * FROM users WHERE fb_id = '" . $fb_id . "'") or die(mysql_error());
      $CheckDB = mysql_num_rows($SrcUser);

      if($CheckDB == 1){
          // If user has an account

          while ($row = mysql_fetch_array($SrcUser)) 
                { 
                     $id = $row["id"];
                     $user_level = $row["user_level"];
                }
        session_start();
        $_SESSION['user_name'] = $full_name;
        $_SESSION['user_level'] = $user_level;
        $_SESSION['user_id']= $id;  
        // Javascript redirect.. its kinda cheating to be honest as if i dont use it i will have awkwardness with header errors
        ?>
  <script type="text/javascript">
        window.location = "myaccount.php"
        </script>
        <?
      } else {
          // If user does not have an account create new
        ?>  <?
        session_start();
        $_SESSION['fb_id']= $fb_id;  

        if($gender == "male"){
            $gender = "1";
        } else {
            $gender = "0";
        }
        $_SESSION['r_full'] = $full_name;
        $_SESSION['r_gender'] = $gender;

        mysql_query("INSERT INTO users (full_name, gender, fb_id)
            VALUES ('$full_name','$gender','$fb_id')");
        $user_id = mysql_insert_id();  
        $md5_id = md5($user_id);
        mysql_query("update users set md5_id='$md5_id' where id='$user_id'");

            $md5_id = md5($user_id);
            mysql_query("update users set md5_id='$md5_id' where id='$user_id'");

        ?>

Hope this helps!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top