Кнопка входа в Facebook не будет вызывать функцию обратного вызова - PullRequest
0 голосов
/ 15 марта 2019

Я не уверен, что понимаю, как это должно быть сделано.

Сначала появляется кнопка FB, которая появляется на экране и приводит меня на страницу входа в FB для подтверждения.

Даже если эта кнопка не имеет onclick, она все равно возвращает меня в окно входа в систему, но я добавил onclick и определил функцию:

<div onclick="login();" class="fb-login-button" data-width="300" data-size="large" data-button-type="continue_with" data-auto-logout-link="false" data-use-continue-as="false" ></div>

Функциянаходится внутри файла js и:

  function login()
      {
          console.log("connecting...."); 
                 FB.login(function(response) {
                    if (response.status === 'connected') {
                      console.log("connected");
                      testAPI();
                    } else {
                      console.log("not connected");
                    }
                  });

      }

Ничего не будет напечатано, даже не "соединяясь ...", даже когда я нажимаю кнопку FB и даже когда я успешноавторизовался. Без ошибок.

Как это сделать?Я хочу войти в него, вызвать функцию, которая подтверждает, что он в нем, и извлечь его данные.

Ответы [ 2 ]

3 голосов
/ 15 марта 2019

Вы смешиваете две разные концепции, вы можете либо использовать официальную кнопку входа в систему, либо использовать FB.login JavaScript SDK.Кнопка входа в систему требует только «onlogin» и обрабатывает все остальное для вас автоматически, как вы можете видеть в документации: https://developers.facebook.com/docs/facebook-login/web/login-button/

Если вы хотите использовать FB.login, используйте случайный div (или любой HTML).тег) вместо:

document.getElementById('loginBtn').addEventListener('click', () => {
    FB.login((response) => {
        if (response.authResponse) {
            //user just authorized your app
            document.getElementById('loginBtn').style.display = 'none';
        }
    }, {scope: 'email,public_profile'});
}, false);

Дополнительная информация: https://www.devils -heaven.com / facebook-javascript-sdk-login /

0 голосов
/ 15 марта 2019

Использование встроенного кода - плохая практика, вам нужно присвоить идентификатор или класс для функции div и вызвать для нее функцию, например:

<div class="test">Click me!</div>

$('div.test').click(function(){
    login();
});

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

...