Facebook Connect application à l'intérieur iframe ne fonctionne pas dans IE7

voix
5

Je construis une application Facebook Connect qui fonctionne à l'intérieur d'un gadget Google. Être un gadget signifie que l'application fonctionne à l'intérieur d'un iframe. A l'intérieur de l'application, il y a une forme qui permet aux utilisateurs enregistrés de poster des commentaires. La présentation est faite en utilisant AJAX, mais j'obtenir les mêmes résultats avec une forme normale. Le problème est que je dois obtenir l'identifiant de l'utilisateur facebook. Dans Firefox, il fonctionne très bien, mais sur Internet Explorer 7, je reçois l'erreur suivante:

 'A session key is required for calling this method'

Je crois que cela est dû à la façon dont IE gère les cookies tiers, parce que si je vais aux options Internet / Confidentialité / Avancé et cochez la case Remplacer gestion automatique des cookies et accepte tous les cookies, il fonctionne très bien. Je ne peux pas passer l'id Facebook du javascript, parce que tout le monde peut falsifier il.

EDIT: Si j'ouvre le contenu de l'iframe directement, l'application fonctionne très bien. Le problème est vraiment dû à la IFRAME et le modèle de sécurité IE.

Qu'est-ce que je fais quelque chose de mal? Comment puis-je contourner ce problème?

Créé 16/02/2009 à 19:10
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
1

J'ai trouvé un travail autour qui fonctionne, bien qu'il soit un peu laid: lorsque l'utilisateur clique sur le bouton « login », il ouvre une fenêtre qui vient de mon propre site et qui contient le Facebook Connect bouton de connexion. Après que l'utilisateur se connecte, je ferme la fenêtre contextuelle et recharger le iframe.

Ceci est vraiment moche car il ouvre deux fenêtres pop-up, mais au moins cela fonctionne. Je détecter si les cookies sont activés à l'aide javascript et s'ils sont activés, je vais sauter le premier pop-up.

Je suis toujours ouvert à de meilleures solutions ...


Modifier : Facebook utilise maintenant un pop - up « faux » dans mon pop - up, au lieu d'ouvrir une autre fenêtre. Maintenant , je n'ai un pop - up qui est ok pour moi.

Créé 16/02/2009 à 21:17
source utilisateur

voix
7

Avez-vous essayé d'ajouter une politique P3P?

Si la réponse du paramétrage du cookie a une politique compacte, IE utiliser pour déterminer si oui ou non pour permettre le cookie 3ème partie ..

Créé 17/02/2009 à 04:01
source utilisateur

voix
3

J'ai résolu le même problème en modifiant la façon dont je vérifie si l'utilisateur a été connecté sur la page PHP ci-dessous un FB connecter connexion.

Alors, ils se connecter à FB Connect avec IE7. Suivant et charges de page suivante où je dois vérifier qu'ils sont bien connectés à FaceBook je le code suivant (notez que Facebook- $> require_login () et d'autres fonctions ne fonctionnent pas - ils sont revenus nuls seulement dans 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();

Le fb_user_id de $ devrait maintenant avoir un ID utilisateur valide FaceBook.

En ce qui concerne la politique de confidentialité et facebook connecter + IE 7:

Bien que cela ne fonctionne pas pour moi, il semble fonctionner pour les autres. en HTAccess:

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

ou dans des fichiers PHP:

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

Référence: 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\"");
}
Créé 30/06/2009 à 19:20
source utilisateur

voix
0

vous pouvez voir ce fil aussi, qui est créé sous facebook plateforme de développement

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

Créé 22/03/2010 à 12:38
source utilisateur

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