2013-11-15 6 views
0

Я хочу войти в систему с моим пользователем в своем чате с помощью fb. Мой чатбокс является общим для других сайтов, использующих javascript.открыть новое окно для fb login

Я хочу сделать, когда пользователь нажимает кнопку «FB Login», он откроет окно для входа в fb. то пользователь примет разрешения, затем .. он будет входить в мой чат-бокс.

Моя проблема в том, как чат знает, находится ли пользователь в системе? событие триггера для этого входа? так, чтобы chatbox собирался выполнить init(); для изменения кнопки (сменить логин на кнопку -> кнопка выхода).

Мой путь, во-первых, посещение пользователем сайта (другие сайты с моим чатом с помощью javascript) -> chatbox run init () [функция, отображающая имя чата, имя пользователя, а затем вход в систему, если пользователь вошел в систему до запуска init(), кнопка вышла из системы] -> если пользователь будет входить в систему, откроется javascript php-файл, который перенаправляет на ссылку входа в facebook -> разрешение пользователя, кнопка автоматически изменится с входа в систему входа в систему. То же самое, что и выходить из системы. кнопка изменится с выхода на логин

ответ

0

В Javascript Я знаю, что есть два способа проверить, зарегистрирован ли текущий посетитель на Facebook, и приняли/не приняли ваш fb_app.

  1. При загрузке страницы с использованием ({статус: истинно}) FB.init параметра и подписками на события auth.statusChange.
  2. После загрузки страницы, даже асинхронно, используя FB.getLoginStatus

В обоих случаях, если нет ошибок, функция обратного вызова будет срабатывать. Здесь проверить, если response.status существует, просто быть уверены, что до сих пор нет никаких ошибок, он должен иметь три возможных значения:

  1. response.status == "connected" - ваш посетитель принял приложение Facebook (и вошел в Facebook)
  2. response.status == "not_authorized" - ваш посетитель НЕ принял приложение Facebook (и зарегистрировался на Facebook)
  3. response.status == "unknow" - Ну, если все работает нормально на вашей странице, это на самом деле означает, что ваш посетитель НЕ зарегистрирован в Facebook.

Подписавшись auth.statusChange может быть также полезно, если вы хотите поймать посетитель, которые вошли в Facebook после первого просмотра страницы, в ходе визита, может быть, даже на другую вкладку в текущем браузере.

В любом случае я предлагаю использовать отладчик Javascript и выполнять разные тесты: с подключенными, зарегистрированными и неавторизованными пользователями.

В следующей строке обновление:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="US-ASCII"> 
<title>test-facebook-login</title> 
</head> 
<body> 

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    // init the FB JS SDK 
    FB.init({ 
     appId  : '1234567890',    // App ID from the app dashboard 
     channelUrl : '//www.yoursitehere.com/channel.html', 
     status  : true,      // Check Facebook Login status 
     xfbml  : true      // Look for social plugins on the page 
    }); 

    FB.Event.subscribe('auth.statusChange', function(response) { 

     if (window.console) 
      window.console.log(response); 

    }); 

    /* 
    // On the other hand you could call this: 

    FB.getLoginStatus(function(response) { 

     if (window.console) 
      window.console.log(response); 

    }); 
    */ 


    // Additional initialization code such as adding Event Listeners goes here 
    }; 

    (function(){ 
    if (document.getElementById('facebook-jssdk')) {return;} 
    var headElement = document.getElementsByTagName('head')[0]; 
    var facebookJS = document.createElement('script'); 
    facebookJS.id = 'facebook-jssdk'; 
    facebookJS.src = '//connect.facebook.net/en_US/all.js'; 
    headElement.parentNode.appendChild(facebookJS); 
    }()); 
</script> 
</body> 
</html> 
+0

Если пользователь на странице и не вошли в систему, ссылка Логин будет отображаться. если он/она щелкнет логин (после загрузки страницы), он будет регистрироваться (ответ)? это использование FB.Event.subscribe ('auth.statusChange', function (response) { if (window.console) window.console.log (response); }); –

+0

auth.statusChange используется, чтобы быть в курсе, если пользователь зарегистрирован на Facebook или нет, и даже если он зарегистрирован и принял ваше приложение FB – freedev

Смежные вопросы