Ich habe eine Facebook-Anwendung auf Leinwand, die sowohl eine Webseite als auch eine bestimmte mobile Seite enthält. Die Webseite funktioniert gut und auch bei der Simulation des Browsers mit der Konsole funktioniert alles gut.Facebook Canvas, Einloggen von Facebook auf Mobilgeräten nicht möglich
Aber wenn ich versuche, die App von der Facebook Mobile App zu starten, wird die Canvas-App geladen (was korrekt ist), aber sie loggt sich nicht ein.
Ich verwende die Funktion FB.login.
login: function() {
var deferred = $q.defer();
FB.login(function (response) {
if (!response || response.error) {
deferred.reject('Error occured');
} else {
deferred.resolve(response);
}
}, {
scope: 'email, user_friends'
});
return deferred.promise;
},
und in den Einstellungen> Erweitert - Ich habe das: Kunden OAuth Anmeldung, Web OAuth Anmeldung, Embedded Browser OAuth Anmeldung, Valid OAuth URIs umleiten und Anmeldung von Geräten korrekt ausgefüllt.
aber immer noch von der Facebook Mobile App die Canvas-App nicht die Anmeldung vor.
Ich habe versucht, dies den ganzen Tag zu arbeiten. und ich kann nirgends eine Lösung finden. Ich kann auch nicht die mobile Facebook App debuggen.
irgendwelche Ideen, wie man dieses Problem angeht?
EDIT
sah auch mein Knoten Server-Logs an und ich sehe, dass die FB.login nicht einmal genannt.
EDIT 2
ich die Anmeldung mit getLoginStatus ersetzt endete die seit ihrer Facebook-Leinwand App kein Problem für mich stellt ... aber die Frage bleibt, wie das Login zu tun.
EDIT 3 11/26/2015
gut so getLoginStatus vollständig nicht mein Problem lösen, da es in der Tat nicht den Benutzer anmelden, um für die Leinwand-Spiele müssen Sie wahrscheinlich für den ersten Eintrag anmelden wenn Sie Berechtigungen ... meine Lösung benötigen war die Anmeldung zu addieren, wenn die getLoginStatus kehrt wie so not_autorized:
/**
* [getLoginStatus get the FB login status]
* @return {[type]} [description]
*/
getLoginStatus: function() {
var deferred = $q.defer();
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
deferred.resolve(response);
} else if (response.status === 'not_authorized') {
_fbFactory.login().then(function (fbLoginResponse) {
deferred.resolve(fbLoginResponse);
});
} else {
deferred.reject('Error occured');
}
});
return deferred.promise;
},
Aber warten Sie, es gibt noch mehr ... die FB.login Funktion wird nicht gut auf mobile Leinwand Spiele (nicht sicher, ob es nicht ausgelöst wird oder die Browser die Popups oder beide bloggen). trotzdem müssen Sie sie aktiv ... per Taste rufen so für mobile Leinwand Spiele ich einen Start spielen Schaltfläche hinzufügen hatte und dann die Anmeldung funktioniert ..
EDIT 4 (Final)
schließlich I bemerkte, dass FB.login() nicht ausgelöst wird, es sei denn, es ist ein externes Ereignis, das es auslöst, also musste ich eine Änderung für Mobile Canvas vornehmen, wenn der getLoginStatus nicht verbunden zurückkehrt, dann zeige ich eine Login-Schaltfläche, die die Anmeldung ausführt ... Der Rest blieb gleich. was ich getan habe für mobile nur auf die akzeptierte Antwort ähnlich war meine Bedürfnisse anzupassen ...
Ich hoffe, das jemand außer mir hilft ...
Erhalten Sie eine Antwort von der FB.Login Methode? Testen Sie Chrome Remote Debugging, https://www.youtube.com/watch?v=HEqwnpLYnI0&feature=youtu.be. –
Was ist die Antwort von 'getLoginStatus'? – Rayon
Ich habe die Benutzer-ID und accessToken, was ich brauchte. –