Facebook autorisasjon problem

stemmer
3

Jeg jobber med en facebook app og det er noe jeg bare ikke forstå hvordan deres autorisasjon systemet fungerer.

Vår grunnleggende oppsett er dette

lerret URL = domain.com/facebook

Dette er en enkel side med en FBML Iframe element som peker til domain.com/facebook/app som er en HTML-side som serverer et Flash-program.

Flash applikasjon ber om ytterligere data fra vår søknad server - noen av disse forespørslene be om facebook data (for eksempel en liste over venn IDer).

Så Flash gjør deretter en forespørsel til domain.com/resources/facebook/friends - dette er en PHP-side som skaper en Facebook eksempel (deres PHP bibliotek) og utfører den nødvendige samtalen til sine API og returnerer dataene.

Men forespørselen til denne nettadressen (med blits) ikke validere, så det er da omdirigert til innloggings sin når så selve omdirigeringer ryggen min lerret URL med to parametre - auth_token og neste . Så forespørselen er gyldig, men viderekoblingen bryter flash samtalen.

Så, jeg prøver å finne ut hvordan du gjør disse andre API-kall (når selv septer facebook API-kall) bli facebook-vaildated fra get-go.

Publisert på 27/01/2009 klokken 18:14
kilden bruker
På andre språk...                            


2 svar

stemmer
1

Ok, jeg fant ut av det.

Som det viser seg, Flash allerede følger omdirigeringer - alt jeg trengte å gjøre var å oppdage (på lerretet URL) når det var en autorisasjonsforespørsel (angitt av tilstedeværelsen av auth_token og neste ), og inkluderer den auth_token som en GET parameter når jeg omdirigert til neste URL (i utgangspunktet, videresende auth_token på den opprinnelige avtale).

Så, i motsetning til hva jeg sa over, viderekoblingen ikke bryte flash samtale - det bare ikke nok data til å være en gyldig forespørsel.

Svarte 27/01/2009 kl. 20:55
kilden bruker

stemmer
1

Løs ved å sette koden under i stedet for "require_login ()" linje

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();
}
Svarte 24/01/2010 kl. 20:01
kilden bruker

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