2011-11-05 18 views
11

Ho provato a seguire FB Mobile Web "Guida introduttiva" a: https://developers.facebook.com/docs/guides/mobile/web/ per un'app Web che apro a schermo intero sul mio iphone.schermata bianca vuota dopo l'accesso FB tramite web app?

ma quando provo ad accedere utilizzando la pagina di accesso fb che si apre, ottengo una schermata bianca vuota dopo aver fatto clic sul pulsante "login". L'utente ha effettuato l'accesso anche se .. Lo so perché se chiudo e riapro la mia app web, controllo lo stato di login e cerco di ottenere alcune informazioni utente, e funziona bene ...

Quando provo lo stesso app web nel cromo del mio desktop o nel mio iphone safari, la procedura di accesso è ok ... si interrompe solo dall'app web a schermo intero.

qualche idea ?? Sto semplicemente seguendo il codice di esempio da FB :-(

grazie.

+1

Sto avendo lo stesso esatto problema. Se trovo qualcosa di fuori ti farò sapere, per favore fai lo stesso :) correzione – fancy

risposta

1

ho trovato una soluzione al problema ... sembra che ci sia un non documentato 'redirect_uri' attributo posso usare nel login (metodo), ad esempio

login({scope:'email', redirect_uri:'where_to_go_when_login_ends'}) 

e 'documentato per SDK fb del desktop, così ho dato un andare e sorta di opera. Quando dico "sorta di", voglio dire che il web mobile, sembra ok, ma se provi a eseguirlo in un browser desktop, il popup di accesso reindirizza all'URL specificato all'interno del popup di accesso - non all'interno della finestra principale.

Spero che questo sia abbastanza buono e non causa effetti collaterali, non posso davvero dirlo. Ma questo è quello che userò nel frattempo per la mancanza di altre opzioni: ^)

+1

: il nome del parametro è redirect_uri - non url ... –

+0

sagimann TI TI AMO TANTO! È hacky e funziona, ma funziona per ora !!!! Grazie mille per aver trovato/postato questo bug mi ha ucciso! – fancy

+0

Quindi questo significa che non dovrei usare il callback di accesso per gestire la risposta. Dal momento che la pagina si ricarica, andrà sempre su FB.getLoginStatus? Sto cercando di farlo ora e non funziona, FB.getLoginStatus non attiva mai la sua richiamata. – fancy

7

Tutto quello che dovete fare è aggiungere "display: 'tocco'" e redirect_uri parametri per il login come:

FB.login(function(response) { 
    if (response.authResponse) { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
     FB.logout(function(response) { 
     console.log('Logged out.'); 
     }); 
    }); 
    } else { 
    console.log('User cancelled login or did not fully authorize.'); 
    } 
}, {scope: 'email,publish_stream' , redirect_uri: 'YOUR_REDIRECT_URL' , display : 'touch'}); 
6

ho trovato una risposta migliore su questo post: FB.login broken flow for iOS WebApp

var permissions = 'email,publish_stream,manage_pages,read_stream'; 
var permissionUrl = "https://m.facebook.com/dialog/oauth?client_id=" + m_appId + "&response_type=code&redirect_uri=" + encodeURIComponent(m_appUrl) + "&scope=" + permissions; 
window.location = permissionUrl; 

risposta di Marco sopra non funziona più ... Facebook tende a rompere le cose spesso come questo. Mostrare la pagina di accesso usando window.location fa il trucco.

La mia app ha richiesto un aggiornamento dopo il mio login, quindi ha funzionato alla grande. Quindi potresti dover ripensare il tuo flusso se non vuoi aggiornarlo.

+0

Funziona ancora! Posso verificare che la risposta di Mark no. – OptimusCrime

Problemi correlati