0

У моего приложения есть кнопка входа в систему Facebook (<fb:login-button>), которая регистрирует пользователя в Facebook и проверяет подлинность использования моего приложения. Вот мой код (login() и logout()), подготовьте макет страницы для входа в систему и выйдите из системы, соответственно). См. this answer для обоснования этого кода.Как подключиться к Facebook с помощью кнопки входа в систему?

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: myAppID, 
     channelUrl: window.location.protocol + '//' 
      + window.location.host + '/channel.html', 
     status: false, 
     cookie: true, 
     xfbml: false, 
     oauth: true 
    }); 

    FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
      login(response); 
     } else { 
      FB.Event.subscribe('auth.login', function(response) { 
       login(response); 
      }); 
      logout(); 
     } 
    }); 
} 

(function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
}(document)); 

Проблема: новые пользователи получают диалог OAuth и может войти в Facebook, но auth.login не срабатывает для них. Также нет auth.authResponseChange и auth.statusChange (все описано here). В следующий раз, когда пользователь нажимает кнопку, или если они уже вошли в Facebook, открывается диалоговое окно и сразу исчезает. (Как ни странно, обратные вызовы происходят, как и ожидалось, с моей учетной записью Facebook, возможно, потому, что ранее я аутентифицировал приложение.)

Как работаю, я попытался запустить FB.login() в качестве руководства onclick event для входа -кнопка (простите за использование встроенного Javascript):

<fb:login-button onclick="FB.login(function(r){if(r.authResponse)login(r)})"> 

, но это не приводит к срабатыванию входа обратного вызова либо (хотя он и входа пользователя в).

Как правильно войти в Facebook с помощью кнопки входа?

ответ

0

Оказывается, любой из этих способов войти прекрасен, я просто забыл отключить «режим Sandbox» в настройках моего приложения на developers.facebook.com:

«Если включен, то только приложение разработчики иметь возможность использовать приложение ".

Охватывает.