Facebook Войти путаница - PullRequest
       5

Facebook Войти путаница

1 голос
/ 17 февраля 2012

Я планирую встроить кнопку входа в Facebook на мой сайт.Прямо сейчас у меня есть кнопка входа в Facebook, которая при нажатии открывает новое окно с просьбой разрешить доступ к основной информации пользователя и электронной почте.Все, что было сделано до сих пор, - это следующее: http://developers.facebook.com/docs/guides/web/#login. Я использую PHP (с платформой Codeigniter, библиотекой аутентификации Tank) и jQuery.

Проблема: Теперь после добавления кнопки входана мой сайт, у Facebook больше нет инструкций о том, как действовать?

  1. Как мне получить информацию о пользователе из Facebook для вставки в мою базу данных (при первом посещении)
  2. Какопределить, разрешил ли пользователь моему веб-сайту доступ к его информации?
  3. Если доступ предоставлен, как я могу перенаправить пользователя на новую страницу?

Я понимаю, что в SDK недавно произошли последние изменения, и поиск по учебникам на нем простодает мне учебники, которые говорят, что они устарели.Любая помощь, чтобы указать мне в правильном направлении, будет принята с благодарностью!Спасибо!

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>

1 Ответ

2 голосов
/ 17 февраля 2012

Быстрое редактирование: Перейдите на https://github.com/facebook/connect-js, убедитесь, что у вас установлена ​​последняя версия и вы используете версию PHP, это намного проще, я нашел.

1) Как получить информацию о пользователе из Facebook для вставки в мою базу данных (при первом посещении)

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

и т.д.

2) Как определить, что пользователь разрешил моему веб-сайту доступ к его информации?

API Facebook знает об этом, не волнуйтесь :-), когда пользователь нажимает на кнопку входа в систему, появляется всплывающее окно (как вы упомянули в своем вопросе) и когда он нажимает кнопку «Разрешить».

Одна вещь, которую вы должны сделать, однако, это создать приложение в Facebook, иначе оно не будет работать, я не уверен, если вы сделали это или нет, перейдите на https://developers.facebook.com/apps

3) Если доступ предоставлен, как перенаправить пользователя на новую страницу?

Javascript перенаправление в операторе if, вот как выглядит мой

Обязательно установите здесь и некоторые переменные:

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

        ?>

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...