problemă de autorizare Facebook

voturi
3

Sunt de lucru într-o aplicație Facebook și e ceva pur și simplu nu mă înțelege cum funcționează sistemul lor de autorizare.

Configurarea noastră de bază este aceasta

panza URL = domain.com/facebook

Aceasta este o pagină simplă cu un element FBML iframe care indică spre domain.com/facebook/app care este o pagină HTML care servește o aplicație Flash.

Aplicația Flash solicită date suplimentare de la serverul nostru aplicație - unele dintre aceste solicitări se cere date pe Facebook (cum ar fi o listă de prieteni ID-uri).

Deci, Flash face apoi o cerere către domain.com/resources/facebook/friends - aceasta este o pagină PHP care creează o instanță de Facebook (biblioteca PHP) și efectuează apelul necesar pentru API-ul lor și returnează datele.

Cu toate acestea, cererea la această adresă URL (prin bliț) nu validează, de aceea este apoi redirecționat către conectare lor atunci când apoi se redirecționează înapoi URL - ul meu panza cu doi parametri - auth_token și următor . Deci , cererea este validă, dar redirecționarea rupe apelul flash.

Deci, am încercat să dau seama cum să facă aceste alte apeluri API (atunci când se nucșoară facebook apeluri API) să fie facebook-vaildated de la get-go.

Întrebat 27/01/2009 la 19:14
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
1

Ok, m-am dat seama.

După cum se dovedește, Flash urmează deja redirecționează - tot ceea ce trebuia să fac a fost detectat (la adresa URL pânză) , atunci când a existat o solicitare de autorizare ( a luat act de prezența auth_token și următoare ) și includ auth_token ca parametru GET atunci când am redirecționat la următoarea adresă URL ( în principiu, transmite auth_token cu privire la cererea inițială).

Deci, contrar a ceea ce am spus mai sus, redirectarea nu au rupt apelul fulger - pur și simplu nu au suficiente date pentru a fi o cerere validă.

Publicat 27/01/2009 la 21:55
sursa de către utilizator

voturi
1

Rezolva prin punerea codul de mai jos în loc de „require_login ()“ linia

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();
}
Publicat 24/01/2010 la 21:01
sursa de către utilizator

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