Bonjour, j'ai créé une application combinant Zend et la librairie de Faceboook (ce n'est pas la première application en mélangeant les deux que je réalise) et je rencontre un problème assez inattendu..

Mon application ne fonctionne pas tout le temps dans les navigateurs, je veux dire qu'elle fonctionne sous certains navigateurs mais pas tous le temps alors que le code est le même puis au bout d'un moment, elle fonctionne sous certains navigateurs qui ne fonctionnait pas au début et ca ne fonctionne plus sous d'autres..

Concrètement, dans le déroulement de l'application, j'ai un plugin qui s'occupe de demander les droits de l'utilisateur pour que l'application puisse récupérer certaines de ses informations (adresse mail par exemple) suivant dans quelle action l'utilisateur se trouve.

Si l'utilisateur n'est pas dans l'action index (il n'y qu'un contrôleur comme petite application) et que l'identifiant de l'utilisateur est égal à 0 (application non acceptée), le plugin se charge d'afficher la demande de permission pour l'application.

Voici mon script pour que ce soit plus clair :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$nomAction = $this->getRequest()->getActionName();
$nomController = $this->getRequest()->getControllerName();
if($nomController == 'index' && $nomAction != 'index'){
 
    $bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
    $options = $bootstrap->getOption('facebook');
    ZendFacebook_Facebook::getFB($options);
 
    // Si l'utilisateur n'a pas accepte l'application ou que le token n'est pas bon 
    if (ZendFacebook_Facebook::getUser() == 0 || ZendFacebook_Facebook::getAccessToken() ==    options['appid']."|".$options['appsecret']){
 
        $url = ZendFacebook_Facebook::getLoginUrl(array(
		'redirect_uri'	=> $options['redirect_uri'],
	        'scope'			=> $options['scope']
	));
	echo "<script> top.location.href = '".$url."'</script>";
    }
 
}
Je pense que quand ca ne fonctionne pas sous certains navigateurs, c'est parce le token de l'utilisateur n'est pas valide (deuxième condition de mon if() ) et que du coup, ca demande l'autorisation de l'application mais à ce moment là, ca doit comprendre que l'application a déjà été autorisée et du coup, ca redirige vers l'url de redirection (redirect_uri) d'où le fait que je n'arrive pas à accéder à une autre page que celle de l'index..

Voici les navigateurs sur lesquels j'ai testé mon application :
Ubuntu :
- Firefox 11.0
- Google Chrome

Windows :
- Firefox 11.0
- Internet Explorer
- Google Chrome
- Safari

Suis-je le seul a qui ceci fait cela (plus correct que ca fait ca)?