Comment faire de FB.l'interface utilisateur({ method: 'auth.login' ...) avec affichage: 'iframe' au lieu de 'popup'?

Je suis en train de travailler sur une connexion pour une simple Facebook app. Je suis en mesure d'utiliser le SDK JavaScript pour animer avec succès un login /prolongée boîte de dialogue autorisations dans une fenêtre pop-up soit avec FB.login ou le code suivant:

FB.ui({ method: 'auth.login',
    perms: 'read_stream,publish_stream',
    display: 'popup' },
    function (rsp) {
        fg_log('on login');                             
        if(rsp.session) { 
            if(rsp.perms) {
                fg_log('PERMS: ',rsp.perms);
            } else {
                fg_log('Hmm. No permissions');
            }
        } else {
            fg_log('Hmm. No login');
        }
    }
);

Le problème est que... je n'aime pas les fenêtres popup beaucoup. À partir d'un point de vue de l'INTERFACE utilisateur, je pense qu'ils se sentent, comme ils n'appartiennent pas au reste de l'application. Et de les amener à se manifester via JavaScript aussi besoin d'un clic de l'utilisateur pour aucune raison, afin d'obtenir autour de bloqueurs de pop-ups, l'utilisateur doit cliquer sur quelque chose comme un bouton de connexion (en grande partie inutile, étant donné que le temps que l'application sait qu'il doit afficher un bouton de connexion, il sait déjà que l'utilisateur doit ouvrir une session et peut ainsi présenter de la boîte de dialogue autorisations).

Alors, j'ai pensé, pourquoi pas une iframe à la place? Pas de problèmes avec les bloqueurs de popups, bien intégré dans la page, et Facebook semble love 'em.

Creuser un peu dans le récent (2.1.2) JavaScript SDK source et de divers autres postes sur le Facebook forum des développeurs semble indiquer qu'on peut passer d'affichage": 'iframe'" en tant que partie des options de FB.l'interface utilisateur.

Mais quand je l'ai essayer, mais l'iframe ne viennent, au lieu de la boîte de dialogue autorisations, j'obtiens:

"Une erreur s'est produite . S'il vous plaît essayer à nouveau plus tard."

(Note: d'essayer de nouveau plus tard, produit les mêmes résultats.)

est-il un truc pour que tout cela fonctionne, ou est-il interdit pour une raison quelconque?

Ce n'est pas vraiment une réponse... mais j'ai vu un comportement variable où Facebook sera parfois l'un et parfois l'autre, en fonction de plusieurs choses qui sont hors de mon contrôle.

OriginalL'auteur Weston C | 2010-11-30