Facebook Connect-toepassing binnen iframe werkt niet in IE7

stemmen
5

Ik ben het bouwen van een Facebook Connect-applicatie die draait binnen een Google-gadget. Omdat het een gadget betekent dat de applicatie draait in een iframe. Binnen de applicatie, is er een vorm die het mogelijk maakt geregistreerde gebruikers in staat om commentaar te posten. De inzending is gemaakt met behulp van AJAX, maar ik dezelfde resultaten met een normale vorm te krijgen. Het probleem is dat ik nodig om de gebruiker Facebook ID te krijgen. In Firefox, het werkt prima, maar op Internet Explorer 7, krijg ik de volgende foutmelding:

 'A session key is required for calling this method'

Ik ben van mening dat dit te wijten aan de manier waarop IE omgaat met cookies van derden, want als ik naar Internet-opties / Privacy / Geavanceerd en controleer Automatische cookie handling en alle cookies te accepteren, het werkt prima. Ik kan niet door de Facebook-id uit de javascript, omdat iedereen het kan knoeien.

EDIT: Als ik de inhoud van de iframe direct te openen, de app werkt prima. Het probleem is echt te wijten aan het IFRAME en IE security model.

Wat doe ik iets verkeerd? Hoe kan ik dit probleem te omzeilen?

De vraag is gesteld op 16/02/2009 om 19:10
bron van user
In andere talen...                            


4 antwoorden

stemmen
1

Ik vond een work-around die werkt, maar het is een beetje lelijk: wanneer de gebruiker de 'login' knop klikt, opent een pop-up die komt uit mijn eigen site en die de Facebook Connect login knop bevat. Nadat de gebruiker inlogt, sluit ik de pop-up en herladen de iframe.

Dit is echt lelijk omdat het opent twee pop-ups, maar in ieder geval het werkt. Ik zal detecteren of cookies zijn ingeschakeld met behulp van javascript en als ze zijn ingeschakeld, zal ik de eerste pop-up over te slaan.

Ik ben nog steeds open voor betere oplossingen ...


Bewerken : Facebook maakt nu gebruik van een "fake" popup in mijn popup, in plaats van het openen van een ander venster. Nu heb ik slechts een popup dat is ok voor mij.

antwoordde op 16/02/2009 om 21:17
bron van user

stemmen
7

Heeft u geprobeerd het toevoegen van een P3P-beleid?

Als het antwoord instellen van een cookie heeft een compacte beleid, zal IE dit gebruiken om te bepalen of de 3rd party cookies toestaan ​​..

antwoordde op 17/02/2009 om 04:01
bron van user

stemmen
3

Ik loste het zelfde probleem door het wijzigen van hoe ik controleren of de gebruiker is ingelogd op de PHP-pagina na een FB aansluiten login.

Dus, ze in te loggen op FB Connect met IE7. Volgende en daaropvolgende pagina wordt geladen, waar ik nodig om te controleren of ze inderdaad aangemeld bij FaceBook gebruikte ik de volgende code (merk op dat $ Facebook-> require_login () en andere functies werkte niet - ze null geretourneerd alleen in 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();

De $ fb_user_id moet nu een geldige FaceBook gebruikers-ID.

Met betrekking tot privacy beleid en Facebook Connect + IE 7:

Hoewel dit niet voor mij werkte het lijkt te werken voor anderen. in htaccess:

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

of in PHP-bestanden:

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

referentie: 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\"");
}
antwoordde op 30/06/2009 om 19:20
bron van user

stemmen
0

wilt u misschien deze discussie ook, die is gemaakt onder facebook ontwikkelaar platform zien

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

antwoordde op 22/03/2010 om 12:38
bron van user

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