Facebook problème d'autorisation

voix
3

Je travaille sur une application Facebook et il y a quelque chose que je ne suis pas comprendre comment fonctionne leur système d'autorisation.

Notre configuration de base est la suivante

toile URL = domain.com/facebook

Ceci est une page simple avec un élément FBML Iframe qui pointe vers domain.com/facebook/app qui est une page HTML qui sert une application Flash.

La demande pour l'application Flash données supplémentaires à partir de notre serveur d'applications - certaines de ces demandes demander des données de Facebook (comme une liste d'ID ami).

Ainsi, Flash ne fait alors une demande de domain.com/resources/facebook/friends - ceci est une page PHP qui crée une instance Facebook (leur bibliothèque PHP) et effectue l'appel nécessaire à leur API et renvoie les données.

Cependant, la demande à cette URL (par flash) ne valide pas, il est alors redirigé vers leur connexion quand puis se réoriente en arrière ma toile URL avec deux paramètres - auth_token et suivant . Ainsi , la demande est valide, mais la redirection casse l'appel flash.

Donc, je suis en train de comprendre comment faire ces appels d'API (quand eux-mêmes appels API facebook macis) être facebook-vaildated du get-go.

Créé 27/01/2009 à 19:14
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
1

Ok, je compris.

Il se trouve que , Flash suit déjà les réoriente - tout ce que je devais faire était de détecter (à l'adresse de la toile) quand il y avait une demande d'autorisation (signalisé par la présence de auth_token et suivant ) et comprennent le auth_token comme paramètre GET quand je redirigé vers l'URL suivante ( en gros, transmettre le auth_token à la demande initiale).

Ainsi, contrairement à ce que je disais plus haut, la redirection ne pas briser l'appel éclair - il n'a tout simplement pas suffisamment de données pour être une demande valide.

Créé 27/01/2009 à 21:55
source utilisateur

voix
1

Résoudre en mettant le code ci-dessous au lieu de la ligne « require_login () »

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();
}
Créé 24/01/2010 à 21:01
source utilisateur

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