Facebook Connect Anwendung innerhalb iframe funktioniert nicht in IE7

stimmen
5

Ich baue eine Facebook Connect-Anwendung, die in einem Google-Gadget läuft. ein Gadget zu sein, bedeutet, dass die Anwendung in einem Iframe läuft. Innerhalb der Anwendung gibt es ein Formular, das registrierte Benutzer erlaubt Kommentare zu schreiben. Die Vorlage wird AJAX gemacht, aber ich bekomme die gleichen Ergebnisse mit einer normalen Form. Das Problem ist, dass ich den Benutzer Facebook-ID zu bekommen. In Firefox, es funktioniert gut, aber auf Internet Explorer 7, erhalte ich folgende Fehlermeldung:

 'A session key is required for calling this method'

Ich glaube, dass dies auf die Art und Weise zurückzuführen ist IE Cookies von Drittanbietern behandelt, denn wenn ich auf Internetoptionen gehen / Datenschutz / Erweitert und überprüfen Automatische Cookiebehandlung aufheben und akzeptieren alle Cookies, es funktioniert gut. Ich kann die Facebook-ID aus der Javascript passieren, weil jemand es manipulieren könnte.

EDIT: Wenn ich den Inhalt des iframe direkt öffnen, die App funktioniert gut. Das Problem ist wirklich aufgrund der IFRAME und IE-Sicherheitsmodell.

Was mache ich etwas falsch? Wie kann ich dieses Problem umgehen?

Veröffentlicht am 16/02/2009 um 19:10
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
1

Ich fand eine Behelfslösung, die funktioniert, obwohl es ein bisschen hässlich ist: wenn der Benutzer klickt auf den ‚Login‘ -Button, es ein Popup öffnet, das aus meiner eigenen Website kommt und die die Facebook Connect Login-Button enthält. Nachdem der Benutzer anmeldet, schließe ich das Popup und die iframe laden.

Das ist wirklich hässlich, weil es zwei Popups öffnet, aber zumindest funktioniert es. Ich werde erkennen, ob Cookies mit Javascript aktiviert sind und wenn sie aktiviert sind, werde ich das erste Popup überspringen.

Ich bin zu besseren Lösungen noch offen ...


Bearbeiten : Facebook verwendet nun ein „fake“ Pop - up in meinem Popup, statt ein weiteres Fenster zu öffnen. Jetzt habe ich nur ein Pop - up haben , die für mich in Ordnung ist.

Beantwortet am 16/02/2009 um 21:17
quelle vom benutzer

stimmen
7

Haben Sie versucht, eine P3P-Richtlinie hinzufügen?

Wenn die Antwort Setzen des Cookies eine Datenschutzrichtlinie hat, wird IE diese verwenden, um zu bestimmen, ob die 3rd-Party-Cookies zu ermöglichen ..

Beantwortet am 17/02/2009 um 04:01
quelle vom benutzer

stimmen
3

Ich löste das gleiche Problem durch Modifizieren, wie ich überprüfen, ob der Benutzer auf der PHP-Seite angemeldet folgenden ein FB Login verbinden.

Also, sie anmelden, um FB Connect mit IE7. Als nächstes und nachfolgende Seite geladen wird, wo ich zu überprüfen, müssen sie in der Tat in Facebook eingeloggt ich den folgenden Code verwendet (beachten Sie, dass Facebook- $> require_login () und andere Funktionen nicht funktioniert hat - sie in IE null nur zurück 7):

// Validate from Facebook that session is valid and user is logged in. require_once 'facebook/facebook.php'; $facebook = new Facebook(YourAppsAPIKeyPublic, YourAppsAPIKeySecret); $facebook->api_client->session_key = $this->userAPISessionKey; $fb_user_id = $facebook->api_client->users_getLoggedInUser();

Die fb_user_id $ sollte nun eine gültige Facebook-Benutzer-ID haben.

In Bezug auf die Datenschutzrichtlinien und facebook connect + IE 7:

Obwohl dies nicht für mich arbeiten scheint es, für andere zu arbeiten. in HTAccess:

Header append P3P "CP=\"HONK\""

oder in PHP-Dateien:

header('P3P: CP="CAO PSA OUR"'); oder header('P3P: CP="HONK"');

Referenz: http://forum.developers.facebook.com/viewtopic.php?id=28636

ASP.NET:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
}
Beantwortet am 30/06/2009 um 19:20
quelle vom benutzer

stimmen
0

Sie können auch diesen Thread sehen wollen, die unter facebook Entwickler-Plattform erstellt wird,

http://forum.developers.facebook.com/viewtopic.php?id=452

Beantwortet am 22/03/2010 um 12:38
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more