Facebook Connect alkalmazás belsejében iframe nem működik IE7

szavazat
5

Építek Facebook Connect alkalmazás fut benne egy Google gadget. Mivel egy modult azt jelenti, hogy az alkalmazás fut iframe-en belül. Bent a kérelmet, van olyan formában, hogy a regisztrált felhasználók hozzászóláshoz. A beadványt az AJAX, de ugyanazt az eredményt kap egy normál formában. A probléma az, hogy el kell jutnom a felhasználó Facebook id. A Firefox, ez jól működik, de az Internet Explorer 7-kapok, a következő hibaüzenet jelenik meg:

 'A session key is required for calling this method'

Úgy vélem, hogy ez annak köszönhető, hogy az út IE kezeli, harmadik fél cookie-kat, mert ha megy az Internet beállítások / Adatvédelem / Advanced, és ellenőrizze felülírása automatikus cookie-kezelés és elfogadja az összes cookie-kat, ez jól működik. Azt nem tudja átadni a Facebook id a javascript, mert bárki hamisítani is.

EDIT: Ha kinyitom a tartalom az iframe közvetlenül az alkalmazás működik. A probléma valóban miatt az IFRAME és az IE biztonsági modellt.

Mit csinálok valamit rosszul? Hogyan kerülhető meg ezt a problémát?

A kérdést 16/02/2009 19:10
a forrás felhasználó
Más nyelveken...                            


4 válasz

szavazat
1

Találtam Kerülő, ami működik, bár ez egy kicsit csúnya: ha a felhasználó rákattint a „Bejelentkezés” gombra, akkor megnyílik egy felugró hogy jön a saját helyén, és amely tartalmazza a Facebook Connect belépés gomb. Miután a felhasználó bejelentkezik, becsukom a felugró látsz iframe.

Ez nagyon csúnya, mert megnyitja két felugró ablakok, de legalább működik. Azt érzékeli, hogy a cookie-k engedélyezve vannak a javascript, és ha engedélyezve vannak, azt átugorja az első popup.

Én még mindig nyitott jobb megoldásokat ...


Szerkesztés : Facebook már használ egy „hamis” felugró belülről a felbukkanó megnyitása helyett egy másik ablakban. Most már csak egy felugró ami rendben van rám.

Válaszolt 16/02/2009 21:17
a forrás felhasználó

szavazat
7

Próbálta már hozzá egy P3P politika?

Ha a válasz beállítja a cookie kompakt politika, IE fogja használni ezt annak meghatározására, hogy ne engedjék, hogy a 3rd party cookie-..

Válaszolt 17/02/2009 04:01
a forrás felhasználó

szavazat
3

Oldottam meg ugyanazt a problémát módosításával hogyan ellenőrizze, hogy a felhasználó éppen bejelentkezett a PHP oldal következő egy FB csatlakozni bejelentkezést.

Ezért úgy be, hogy FB Connect with IE7. Következő és az azt követő oldal betöltődik, amikor azt kell ellenőrizni azokat valóban bejelentkezett FaceBook Régebben az alábbi kódot (megjegyzendő, hogy a $ facebook-> require_login () és egyéb funkciók nem működik - visszatértek null csak IE 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();

A $ fb_user_id most már van érvényes FaceBook felhasználói azonosítót.

Ami az adatvédelmi politika és a Facebook Connect + IE 7:

Bár ez nem működik nekem úgy tűnik, hogy működik mások számára. A htaccess:

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

vagy PHP fájlokat:

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

hivatkozás: 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\"");
}
Válaszolt 30/06/2009 19:20
a forrás felhasználó

szavazat
0

érdemes, hogy ez a szál is, amely alatt létrehozott facebook fejlesztői platform

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

Válaszolt 22/03/2010 12:38
a forrás felhasználó

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