2017-06-07 1 views
-1

Ich versuche FacbookSDK 2.8 für meine Website zu implementieren und unten ist die vereinfachte Version des Codes.Facebook SDK 2.8 gibt keine E-Mail-Adresse

<button onclick="logout()">Logout</button> 
    <button onclick="login()">LogIn</button> 
    <script> 
     (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_US/sdk.js"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 
     setTimeout(() => { 
      window.fbAsyncInit =() => { 
       FB.init({ 
        appId: 'xxxxxxx', //My app id here 
        cookie: true, // enable cookies to allow the server to access 
        // the session 
        xfbml: true, // parse social plugins on this page 
        version: 'v2.8' // use graph api version 2.8 
       }); 
       checkFBLoginStatus(); 
      } 
     }) 

     function checkFBLoginStatus() { 
      FB.getLoginStatus((response) => { 
       console.log(response) 
      }); 
     } 

     function logout() { 
      FB.logout(function(response) { 
       console.log(response) 
      }) 
     } 

     function login() { 
      FB.login(function(response) { 
       console.log(response) 
       FB.api('/me?fields=id,email,name', function(response) { 

        console.log(JSON.stringify(response)); 
       }); 
      }, { 
       scope: 'email' 
      }) 
     } 


     function onLoginSuccess() { 
      FB.getLoginStatus(function(response) { 
       console.log(response) 
      }) 
     } 
    </script> 

Ich erhalte die Antwort auf Aus- und Einbuchen

Hier meine Fragen

  1. Auf FB.api sind nenne ich nur Identifikation und Name bin immer während i Benutzer E-Mail müssen eingestellt als eindeutige Benutzerkennung.

  2. Wann ist der Zustand, den ich erreichen kann not_authorized. Ich erhalte den Status 'Verbunden', wenn ich mich anmelde, und 'Unbekannt', wenn ich mich abmelde. Ich bin nicht in der Lage, den Zustand un_authorized zu reproduzieren, so dass ich dafür codieren könnte.

+0

_ „während i Benutzer E-Mail müssen als eindeutige Benutzerkennung, um“ _ - die Dokumentation für die 'email' Erlaubnis sagt Ihnen schon, dass Sie nicht in der Lage zu bekommen eine E-Mail von jedem Facebook-Nutzer Die anwendungsspezifische Benutzer-ID ist Ihre eindeutige ID. – CBroe

Antwort

0

Sie sollten die ID des Benutzers verwenden, um ihn zu identifizieren, nicht die E-Mail. Benutzer müssen keine E-Mail-Adresse haben, sie können sich auch mit ihrer Telefonnummer anmelden. Stellen Sie sicher, dass Sie im Anmeldeprozess/Popup nach der E-Mail-Berechtigung gefragt werden. Verwenden Sie auch dieses Formular statt:

FB.api('/me', {fields: 'id,email,name'}, function(response) { 
    console.log(JSON.stringify(response)); 
});