warum funktionieren die anderen fälle in fbAsyncinit / fb.Event.subscribe nicht?
Ich frage mich, warum es so aussieht, als ob das "sonst wenn" der Fall istresponse.status === 'not authorized'
und der Fall "else" ("unknown", dh Benutzer ist nicht bei Facebook angemeldet) werden nicht ausgeführt. Wenn ich in meiner App eingeloggt bin, wird testAPI () im Internet entsprechend aufgerufenresponse.stats === 'connected'
. Wenn ich jedoch den Inkognito-Modus in Chrome öffne, werden die testAPI () -Funktionen in den anderen Fällen nicht aufgerufen. Weiß jemand warum?
window.fbAsyncInit = function() {
FB.init({
appId : 'appnumberhere', // App ID
channelUrl : '//localhost/appname/channel.php', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.Event.subscribe('auth.authResponseChange', function(response) {
if (response.status === 'connected') {
testAPI(); // works
} else if (response.status === 'not_authorized') {
testAPI(); // not called. Nothing in console.
FB.login();
} else {
testAPI(); // not called. Nothing in console.
FB.login();
}
});
}); // end async init function
die testAPI Funktion:
function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Good to see you, ' + response.name + '.');
});
}
Als Randnotiz sehe ich auch kein Facebook-Anmeldedialogfeld, wenn ich nicht angemeldet bin, was meiner Meinung nach fb.login () aufrufen soll.
zusätzliche Randnotiz
Seltsamerweise muss ich auch haben<script src="//connect.facebook.net/en_US/all.js"></script>
unter der FB SDK einbinden<script>(function(d){ var js,....</script>
und in meiner Kanaldatei, damit meine App funktioniert. Andernfalls werden einige Teile nicht geladen. Ich bin nicht sicher, ob dies damit zusammenhängt, aber es ist sehr seltsam.