2016-05-24 5 views
4

Ich implementiere die Facebook-Verbindung und es funktioniert gut.getLoginStatus Javascript Facebook verschwinden, wenn Seite neu laden

Diese Funktion gibt meinen Namen nach der Anmeldung zurück.

Aber wenn ich die Seite neu lade, erinnere ich mich an diese Funktion und es gibt 'nicht verbunden mit FB' zurück.

FB.login(function(response) { 

    if (response.authResponse){ 
     //L'utilisateur a autorisé l'application 
     //window.location.replace("http://adresse/de/redirection"); 
    } else { 
     //L'utilisateur n'a pas autorisé l'application 
    } 
    }, {scope: 'public_profile,user_friends,email'}); 

Ich finde keine Lösung in facebook Dokumentation

Um zu zeigen, das Problem, mein Konsolenprotokoll ist wie folgt:: console log with my code

ich meine Login-Funktion helfen beitreten

EDIT: Finden Sie bitte meinen vollständigen Code anhängen. Ich verarbeite von localhost

<!DOCTYPE html> 
<html> 
<head> 
<title>Facebook Login JavaScript Example</title> 
<meta charset="UTF-8"> 

</head> 
<body> 

<button id="loginBtn">Facebook Login</button> 
<div id="response"></div> 

</body> 
<script> 

function getUserData() { 
    FB.api('/me', function(response) { 
     document.getElementById('response').innerHTML = 'Hello ' + response.name; 
    }); 
} 

window.fbAsyncInit = function() { 
    //SDK loaded, initialize it 
    FB.init({ 
     appId  : 'XXXX', 
     xfbml  : true, 
     version : 'v2.2' 
    }); 

    //check user session and refresh it 
    FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
      //user is authorized 
      document.getElementById('loginBtn').style.display = 'none'; 
      getUserData(); 
     } else { 
      console.log(response.status); 
      //user is not authorized 
     } 
    }); 
}; 

//load the JavaScript SDK 
(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')); 

//add event listener to login button 
document.getElementById('loginBtn').addEventListener('click', function() { 
    //do the login 
    FB.login(function(response) { 
     if (response.authResponse) { 
      //user just authorized your app 
      document.getElementById('loginBtn').style.display = 'none'; 
      console.log(response); 
      getUserData(); 
     } 
    }, {scope: 'public_profile,user_friends,email', return_scopes: true}); 
}, false); 
</script> 
</html> 

Dank für die Unterstützung

+0

Sieht aus wie Ihre "Antwort" wird nicht beibehalten. Es gibt nicht genug Code, um sicher zu sein. Aber prüfen Sie, ob Sie sich die Antwort irgendwo merken können ... Wie in einem lokalen Speicher. –

+0

müssen Sie die Antwort nicht speichern. wenn es richtig gemacht wird, wird es funktionieren. Bitte zeigen Sie uns mehr Code. – luschn

+0

auch, werfen Sie einen Blick auf dieses Tutorial: http://www.devils-heaven.com/facebook-javascript-sdk-login/ – luschn

Antwort

10

Für alle diese Seite lesen schlampig (wie ich), die richtige Antwort wurde als Kommentar auf die Frage gepostet.

Die Lösung besteht darin, cookie: true zu dem Optionsobjekt in Ihrem Aufruf von FB.init hinzuzufügen.

Verwandte Themen