Facebook problema di autorizzazione

voti
3

Sto lavorando su un'applicazione Facebook e c'è qualcosa che non sto solo capire su come funziona il loro sistema di autorizzazione.

La nostra configurazione di base è questo

tela URL = domain.com/facebook

Questa è una semplice pagina con un elemento FBML Iframe che punta a domain.com/facebook/app che è una pagina HTML che serve di un'applicazione Flash.

L'applicazione Flash richiede dati aggiuntivi dal nostro server applicazioni - alcune di queste domande chiedono dati di Facebook (ad esempio un elenco di amico ID).

Così Flash poi fa una richiesta al domain.com/resources/facebook/friends - questa è una pagina PHP che crea un'istanza di Facebook (la libreria PHP) ed esegue la chiamata necessario per loro API e restituisce i dati.

Tuttavia, la richiesta di questo URL (da flash) non convalida, quindi è poi reindirizzato al loro accesso quando poi si reindirizza indietro il mio URL tela con due parametri - auth_token e il prossimo . Quindi la richiesta è valida, ma il redirect rompe la chiamata flash.

Quindi, sto cercando di capire come fare queste altre chiamate API (quando si chiamate API mazza facebook) essere facebook-vaildated dal get-go.

È pubblicato 27/01/2009 alle 19:14
fonte dall'utente
In altre lingue...                            


2 risposte

voti
1

Ok, ho capito.

Come si è visto, Flash segue già i reindirizzamenti - tutto quello che dovevo fare era di rilevare (l'URL tela) quando c'era una richiesta di autorizzazione (nota per la presenza di auth_token e successiva ) e comprendono l'auth_token come parametro GET quando ho reindirizzato all'URL successivo (in pratica, inoltrare l'auth_token al richiesta originale).

Quindi, contrariamente a quanto ho detto sopra, il reindirizzamento non rompere la chiamata flash - ma semplicemente non hanno dati sufficienti per essere una richiesta valida.

Risposto il 27/01/2009 a 21:55
fonte dall'utente

voti
1

Risolvere inserendo il codice di seguito al posto di "require_login ()" linea

if (isset($_GET['auth_token'])) {
 $sess_data=$facebook->api_client->call_method('auth.getSession',array('auth_token'=>$_GET['auth_token']));
 $facebook->set_user($sess_data['uid'],$sess_data['session_key'],$sess_data['expires']);
 $user=$sess_data['uid'];
}
if (!$sess_data) {
 $user=$facebook->require_login();
}
Risposto il 24/01/2010 a 21:01
fonte dall'utente

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