2

Ich benutze Facebook Javascript sdk. Ich habe eine benutzerdefinierte Facebook-Schaltfläche erstellt und arbeite an localhost. Wenn ich mich mit Facebook verbinde, erhalte ich keine autorisierte Antwort. Auch wenn ich auf den Button klicke, funktioniert die Funktion nicht. Wie kann ich dieses Problem lösen?Facebook Login mit benutzerdefinierten Button Javascript sdk

Objekt {Status: "NOT_AUTHORIZED", authResponse: null}

HTML-Code

<div class="col-md-12 text-center"> 
     <button class="loginBtn loginBtn--facebook" id="test"> 
      <span>Login with Facebook</span> 
     </button> 
    </div> 

JS-Code

function statusChangeCallback(response) { 
      console.log(response); 
      if (accessToken) { 
       var accessToken = response.authResponse.accessToken; 
      } 
      if (response.status === 'connected') { 
       testAPI2(accessToken); 
      } else if (response.status === 'not_authorized') { 
       console.log("Err"); 
      } else { 
       console.log("Err"); 
      } 
     } 

     function checkLoginState() { 
      FB.getLoginStatus(function (response) { 
       statusChangeCallback(response); 
      }); 
     } 

     window.fbAsyncInit = function() { 
      FB.init({ 
       appId  : '39798***', 
       cookie  : true, 
       xfbml  : true, 
       version : 'v2.8' 
      }); 

      FB.getLoginStatus(function (response) { 
       statusChangeCallback(response); 
      }); 
     }; 

     (function (d, s, id) { 
      var js, fjs = d.getElementsByTagName(s)[0]; 
      if (d.getElementById(id)) return; 
      js = d.createElement(s); 
      js.id = id; 
      js.src = "//connect.facebook.net/en_EN/sdk.js"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 

     function testAPI2() { 
      FB.api('/me', { fields: 'id,name' }, 
       function (response) { 
        var user_id = response.id;//name 
        var name = response.name; 
        var type = 1; 
        $.ajax({ 
         type: 'post', 
         url: "services/services.php", 
         //dataType : 'json', 
         data: { 
          type: 'facebookLogin', 
          facebookId: user_id 
         }, 
         async: true, 
         cache: false, 
         success: function (data) { 
          console.log(data); 
          setTimeout(function() { 
          }, 1000); 
         }, 
         error: function (data) { 
          console.log(data); 
          console.log("An error occurred"); 
         } 
        }); 
       } 
      ); 
     } 

      $("#test").click(function(){ 
       checkLoginState(); 
      }); 
+0

Und wo genau sind Sie tatsächlich die Facebook-Login-Dialog aufrufen ...? – CBroe

+0

ID-Name ist Test Anruf Funktion – Fatih

+0

Ich habe keine Ahnung, was das bedeuten soll. Fakt ist, wenn Sie Ihren eigenen Button verwenden möchten, um Facebook-Login auszulösen - dann müssen Sie den Login-Dialog auch selbst aufrufen. Und es gibt nichts in dem bisher gezeigten Code, der das tun würde. – CBroe

Antwort