Je ne suis pas sûr de comprendre comment cela doit être fait.

Il y a d'abord le bouton FB, qui apparaît à l'écran et m'amène à la page de connexion FB pour confirmer.

Même si ce bouton n'a pas onclick il m'amène quand même à la fenêtre de connexion, mais j'ai ajouté onclick et défini une fonction :

<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>

La fonction est dans un fichier js et est :

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

      }

Rien ne sera imprimé, même pas "connexion..." même lorsque je clique sur le bouton FB et même lorsque je me connecte avec succès. Aucune erreur.

Comment faut-il faire ? Je veux le connecter, appeler une fonction qui m'approuve dans lequel il est et extraire ses coordonnées.

-1
Curnelious 15 mars 2019 à 09:08

2 réponses

Meilleure réponse

Vous mélangez deux concepts différents, vous pouvez soit utiliser le bouton de connexion officiel OU utiliser FB.login du SDK JavaScript. Le bouton de connexion n'a besoin que de "onlogin" et gère tout le reste pour vous automatiquement, comme vous pouvez le voir dans les documents : https://developers.facebook.com/docs/facebook-login/web/login-button/

Si vous souhaitez utiliser FB.login, utilisez plutôt un div aléatoire (ou n'importe quelle balise 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);

Plus d'informations : https://www.devils-heaven.com/facebook- javascript-sdk-login/

3
luschn 15 mars 2019 à 07:24

L'utilisation de code en ligne est une mauvaise pratique, vous devez attribuer un ID ou une classe à la fonction div et appeler la fonction par exemple :

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

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

J'espère que cela t'aides.

0
Ike Mawira 15 mars 2019 à 06:15