J'émigre mon ancienne application FB à la nouvelle API graphique en utilisant la PHP APIComment vérifier si l'utilisateur est connecté avec le nouveau facebook php api
J'ai deux pages: les établissements publics (qui ne nécessitent pas la connexion de l'utilisateur) et privés (qui font)
Ainsi, le code de chaque page php dans mon application fonctionne comme suit:
if (this_page_requires_user_login){
$facebook = new Facebook(...) ;
$session = $facebook->getSession ;
if (!$session){
$url =$facebook.getLoginUrl(array(next => current_page);
echo "<fb:redirect url=$url/>" ;
}
// the rest of the code continues here
maintenant, comme vous pouvez le voir, cette façon de travailler avant chaque page à l'URL de connexion et tandis que cela fonctionne, il est également lent et ajoute & session = {bla} chaîne à URL très unique.
J'ai besoin d'un moyen de vérifier où un utilisateur est déjà connecté avant de le rediriger vers la page de connexion. Mais je ne peux pas trouver une telle méthode dans l'API php. Quelle est la meilleure façon de faire cela?
EDIT
Cela semblait faire l'affaire
if ($session) {
try {
$me = $facebook->api('/me');
if ($me) {
// here comes your code for user who is logged in
}
} catch (FacebookApiException $e) {
login()
}
}else{
login()
}
function login(){
$url =$facebook.getLoginUrl(array(next => current_page);
echo "<fb:redirect url=$url/>" ;
}
Si vous avez enregistré le jeton d'accès et l'utiliser, cela ne fonctionne pas, parce que l'appel API fonctionne toujours sans lancer une exception, mais quand vous les rediriger vers l'getLogoutUrl par exemple, il envoie juste à la page d'accueil de Facebook, au lieu de vous renvoyer à votre site Web – andrewtweber
@andrewtweber exactement. Merci. –
Vous deviez décoder l'URL auparavant, c'est pourquoi vous ne l'avez pas redirigé: Php echo rawurlencode ($ logoutUrl); ?> –