Domanda

Ho in programma di integrare un pulsante di Facebook Login nel mio sito web. In questo momento ho un pulsante Facebook Login che, quando premuto, popup una nuova finestra per chiedere il permesso di accedere informazioni di base dell'utente e-mail. Tutto fatto fino ad ora è di seguire http://developers.facebook.com/docs/guides / web / # login . Sto usando PHP (con Codeigniter quadro, Serbatoio libreria di autenticazione auth) e jQuery.

problema:? Ora, dopo l'aggiunta del pulsante di accesso al mio sito web, Facebook non è più avere tutte le istruzioni su come procedere

  1. Come faccio a recuperare le informazioni dell'utente da facebook di inserire nel mio database (se prima visita)
  2. Come faccio a determinare che l'utente ha permesso il mio sito per l'accesso ai propri dati?
  3. Se l'accesso è stato concesso, come faccio a reindirizzare l'utente a una nuova pagina?

Capisco che ci sono stati recenti cambiamenti alla SDK, e googling per tutorial su dà solo a me tutorial che dice che sono superate. Qualsiasi aiuto per puntare nella direzione giusta mi sarà molto apprezzato! Grazie!

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>
È stato utile?

Soluzione

modifica rapida: Vai a https://github.com/facebook/connect-js assicurarsi di avere la versione più recente e utilizzare quella di PHP, lo rende un inferno di molto più facile che ho trovato.

1) Come faccio a recuperare le informazioni dell'utente da facebook di inserire nel mio database (se prima visita)

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

ecc.

2) Come faccio a determinare che l'utente ha permesso il mio sito per l'accesso ai propri dati?

L'API di Facebook lo sa, preoccupazione Dont :-) come quando l'utente fa clic login un popup viene in su (come lei ha ricordato nella sua domanda) e quando fanno clic permettono il suo fare.

Una cosa che dovete fare, tuttavia, è di creare un App di Facebook altrimenti non funzionerà, non sono sicuro se avete fatto questo o no in modo da andare a https://developers.facebook.com/apps

3) Se è stato concesso l'accesso, come faccio a reindirizzare l'utente a una nuova pagina?

JavaScript redirect in un'istruzione if, questo è ciò che il mio appare come

Assicurarsi di impostare alcune variabili anche qui:

   <?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'");

        ?>

Spero che questo aiuti!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top