FB.getLoginStatus löst keine Callback-Funktion aus

8

Ich habe ein schwieriges Problem. Schwierig bedeutet, dass ich das Netz und StackOverflow sowie die gesamte FBJS SDK Dokumentation durchsucht habe und keine Antwort gefunden habe.

Ich entwickle eine Page Tab-Anwendung, in der ich Fans zu rsvp-Events einladen möchte. Also muss ich überprüfen, ob der Benutzer eingeloggt ist und falls nicht, muss ich mich anmelden. Das klingt ziemlich einfach, aber FB.getLoginStatus feuert keine Callback-Funktion. Dies ist der Codeausschnitt:

%Vor%

und dann klicke ich einfach - natürlich nachdem der Benutzer auf eine Schaltfläche geklickt hat - FB.getLoginStatus, aber es scheint nichts zu tun.

Ich habe bereits Sandbox-Modus, FB.init Erfolg, URLs in Anwendungseinstellungen und Entwicklungsumgebung überprüft. Ich kann FB.ui aufrufen, obwohl FB.ui mit Methode: 'oauth' bekomme ich eine Fehlermeldung "Der" redirect_uri "-Parameter kann nicht in Verbindung mit dem" next "-Parameter verwendet werden, der veraltet ist.". Das ist sehr seltsam, weil ich den Parameter "next" nicht benutzt habe. Aber wenn ich neben undefined setze, klappt es gut, ich bekomme das Fenster, aber es heißt "Angegebene URL ist von der Anwendungskonfiguration nicht erlaubt.". Erwarte das, ich kann mich einloggen, dann habe ich das access_token. Aber im neuen Fenster tut getLoginStatus immer noch nichts.

So sind alle Ratschläge willkommen.

Danke, Tamas

AKTUALISIEREN :

%Vor%

}

UPDATE 2 : Ich habe eine neue App unter einer anderen URL erstellt, die als eigenständige Website konfiguriert ist. Dort funktionieren diese Codes perfekt, ich kann LogInStatus bekommen, ich kann mich anmelden, etc. Gibt es einen Unterschied im Zusammenhang mit der FB und in einer eigenständigen Website mit dem FB JavaScript SDK?

    
Sándor Tamás 23.09.2011, 00:13
quelle

5 Antworten

16

FB.getLoginStatus löst den Rückruf nicht aus, wenn Sie die Website auf einer anderen Domain als derjenigen ausführen, mit der Sie die App registriert haben. Normalerweise bin ich in dieser Situation, wenn ich mich lokal oder auf einem Staging-Server entwickle.

Wenn Sie beispielsweise die Site mit example.com registriert haben und Ihr Staging-Server example.mystagingserver.com ist, wird der Callback nicht ausgelöst. In diesem Fall müssen Sie eine zweite Anwendung in Facebook erstellen und die Anwendungs-ID und das Kennwort für die neue App verwenden.

    
Jeff 29.09.2011, 15:32
quelle
3

Ich hatte gerade das gleiche Problem, obwohl es nur einigen Benutzern passiert ist.

Ich habe schließlich herausgefunden, dass, wenn Ihre App im Sandbox-Modus ist, Benutzer, die keine Entwickler sind, Ihre App immer noch als Seitenregister sehen können. Aber das Aufrufen von getLoginStatus schlägt im Hintergrund fehl (selbst wenn die Protokollierung aktiviert ist).

Ich habe eine Weile gebraucht, um das herauszufinden, ich hoffe, dass das jemand anderen irgendwann retten kann.

    
Jacob Poul Richardt 27.02.2012 16:44
quelle
2

Ich verwende diesen Code erfolgreich. Ich bin nicht ganz sicher, wo die Unterschiede sind .. aber ich benutze den ASYNC FB Loader.

%Vor%     
lenfontes 25.09.2011 02:49
quelle
0

Sie können den folgenden Code verwenden, um zu überprüfen, ob der Benutzer angemeldet ist:

%Vor%

Von der FB JS SDK-Dokumentation .

Sie können den gesamten Code in jQuery bereit machen:

%Vor%

Sie können auch diese Frage StackOverflow überprüfen.

    
sensor 23.09.2011 01:11
quelle
0

Nach ausführlichen Tests kann ich bestätigen, dass der Dialog zum Loggen des Benutzers nicht angezeigt wird, wenn Sie kein gültiges Application ID

verwenden

Diese finden Sie in

%Vor%

Stellen Sie sicher, dass Sie die API mit der richtigen ID aufrufen.

    
Jamie Hutber 20.06.2016 16:01
quelle