Aplikace Facebook Connect uvnitř iframe nefungují v IE7

hlasů
5

Stavím aplikace Facebook Connect, který běží uvnitř gadget Google. Být gadget znamená, že aplikace běží uvnitř iframe. Uvnitř aplikace, tam je forma, která umožňuje registrovaným uživatelům přidávat komentáře. Podání se provádí pomocí AJAX, ale mám stejné výsledky s normální formě. Problém je v tom, že musím dostat uživatele facebook id. Ve Firefoxu, to funguje dobře, ale v aplikaci Internet Explorer 7, dostanu následující chybu:

 'A session key is required for calling this method'

Domnívám se, že to je kvůli způsobu, jakým IE zpracovává soubory cookie třetích stran, protože když jdu do Možnosti Internetu / Soukromí / Upřesnit a zkontrolujte, zda Přepsat automatickou správu souborů cookie a přijímal všechny cookies, to funguje dobře. Nemohu projít id Facebook z JavaScriptu, protože někdo mohl manipulovat.

EDIT: Mám-li otevřít obsah iframe přímo aplikace funguje. Problém je ve skutečnosti vzhledem k IFRAME a modelu zabezpečení IE.

To, co dělám něco špatně? Jak mohu tento problém vyřešit?

Položena 16/02/2009 v 19:10
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
1

Zjistil jsem, obejití, který funguje, i když je to trochu ošklivé: když uživatel klikne na tlačítko ‚přihlášení‘, otevře se pop-up, který přichází z mých vlastních stránek a který obsahuje přihlašovací tlačítko Facebook Connect. Poté, co uživatel přihlásí, zavírám vyskakovací okno a znovu načíst iframe.

To je opravdu ošklivý, protože to otevře dvě vyskakovací okna, ale aspoň to funguje. Budu zjišťovat, zda jsou soubory cookie povoleny pomocí Javascriptu a pokud jsou povoleny, budu přeskočit první popup.

Jsem stále otevřený pro lepší řešení ...


Edit : Facebook nyní používá „falešnou“ pop-up uvnitř mého vyskakovacího okna, namísto jeho otevření dalšího okna. Teď mám jen jedno vyskakovací okno, které je v pořádku pro mě.

Odpovězeno 16/02/2009 v 21:17
zdroj uživatelem

hlasů
7

Už jste vyzkoušeli přidání P3P politiku?

V případě, že odpověď nastavení cookie má kompaktní politiku, bude IE použít k určení, zda povolí nebo nepovolí cookie 3. strany ..

Odpovězeno 17/02/2009 v 04:01
zdroj uživatelem

hlasů
3

Vyřešil jsem stejný problém změnou, jak jsem se zkontrolovat, zda byl uživatel přihlášen na stránce PHP návaznosti na FB připojit přihlášení.

Tak, že přihlášení k FB Connect a IE7. Next a následné načtení stránky, kde jsem třeba ověřit, zda se skutečně jedná přihlášeni do FaceBook jsem použil následující kód (všimněte si, že $ facebook-> require_login () a další funkce nefungovala - oni se vrátili null pouze v 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();

Na $ fb_user_id by nyní měla mít platný FaceBook ID uživatele.

Co se týče zásady ochrany osobních údajů a facebook připojit + IE 7:

Ačkoliv tato skutečnost není práce pro mě to vypadá, že pracovat pro ostatní. v .htaccess:

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

nebo soubory PHP:

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

Odkaz: 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\"");
}
Odpovězeno 30/06/2009 v 19:20
zdroj uživatelem

hlasů
0

možná budete chtít vidět toto téma také, který je vytvořen na základě facebook vývojářské platformy

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

Odpovězeno 22/03/2010 v 12:38
zdroj uživatelem

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