IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

Facebook PHP SDK/Graph API


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 68
    Points : 53
    Points
    53
    Par défaut Facebook PHP SDK/Graph API
    salut tout le monde,

    je veux créer dans une application web, un truc qui me permet de récupérer quelques information des utilisateurs qui se connectent à facebook.

    j'ai telechargé la version 3 du facebook sdk et je travaille en localhost(wampServer).

    Mais d'aprés ce que j'ai lu dans la documentation le code ci dessous m'affiche le message "welcome".

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php
    //include the Facebook PHP SDK
    include 'facebook.php';
     
    //instantiate the Facebook library with the APP ID and APP SECRET
    $facebook = new Facebook(array(
        'appId' => '*****************',
        'secret' => '**********************',
        'allowSignedRequest' => false
    ));
     
    $user_id=$facebook->getUser();
    $moi=null;
     
    if($user_id){
    	try{
    		echo "welcome";
    		$moi=$facebook->api("/me",'GET');
    		print_r($moi);
    	}catch(FacebookApiException $e){
    		echo $e->getMessage();
    	}
    }
     
    if ($user_id) {
      $logoutUrl = $facebook->getLogoutUrl();
    } else {
      $statusUrl = $facebook->getLoginStatusUrl();
      $loginUrl = $facebook->getLoginUrl();
      echo $loginUrl;
    }
    D'où vient le problème svp?

    Merci d'avance

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Evite de mettre tes APP ID et APP Secret réels en ligne (surtout l'App Secret), sinon tout le monde pourrait les utiliser.

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Sinon, es-tu bien connecté à FB quand tu testes le code?

    Que donne un var_dump($user_id) ?

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 68
    Points : 53
    Points
    53
    Par défaut
    salut,

    j'ai simplifié le code:

    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
    20
    <?php
        require 'facebook.php';
        $facebook = new Facebook(array(
               'appId'  => '**************',
               'secret' => '********************',
        ));
        $user = $facebook->getUser();
        $loginUrl = $facebook->getLoginUrl();
     
     
        $logoutUrl = $facebook->getLogoutUrl();
        if($user){
            $moi= $facebook->api('/me');
            echo $moi['name'];
    		echo "<a href=".$logoutUrl.">Deconnecter</a>";
        }
        else{
            echo "<a href='".$loginUrl."'>Connecter</a>";
        }  
    ?>
    Il récupère bien le nom de l'uttilisateur
    le probléme 1: il me demande de se connecter que la première fois, mais aprés, il récupère toujours le 'name' de la première exécution même si un autre compte facebook est connecté...Pour qu'il me demande une autre fois une connection, je dois quitter mon navigateur web....je crois que c'est un probléme de session que j'ai ps pu resolu.

    Probléme2: deconnecter ne marche pas

    Merci d'avance

  5. #5
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 750
    Points : 354
    Points
    354
    Par défaut
    évite de tester ton appli avec ton compte facebook (celui avec lequel tu gère ton appli)
    fais des tests avec un compte différent
    à chaque soucis supprime l'appli depuis ce compte et refais le meme processus
    '...parfois l'informatique peut vous rendre fou...'

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 68
    Points : 53
    Points
    53
    Par défaut
    j'ai testé mon application avec un autre compte et ça marche dans la première exécution(c'est à dire, il me demande de me connecter), mais aprés, il récupère directement les information du compte comme si je suis connecté malgré que je me déconnecte d'abord de facebook avant que je lance l'application.

  7. #7
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 750
    Points : 354
    Points
    354
    Par défaut
    c'est peut être un problème de cache de ton navigateur
    essaie de forcer le chargement de la page, sous windows c'est CTRL + F5
    '...parfois l'informatique peut vous rendre fou...'

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Je ne pense pas que ça ait à voir avec ton navigateur. Quand tu le lances pour la première fois, l'appli stocke le token de connexion en session, et ensuite il le récupère à l'aide de la méthode getPersistentData() .

    Pour te déconnecter pour de bon, essaies
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $facebook->destroySession();

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 68
    Points : 53
    Points
    53
    Par défaut
    La méthode destroySession(); ne fonctionne pas avec sdk version3

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    C'est pourtant dans l'API publié sur Github. NOm de la version: Facebook PHP SDK (v.3.2.3)

  11. #11
    Membre du Club
    Inscrit en
    Décembre 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 68
    Points : 53
    Points
    53
    Par défaut
    enfin j'ai trouvé la solution.

    j'ai créé deux fichiers: test.php et logout.php

    dans test php j'ai fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ....................
    if ($user) {
        $logout_params = array('next'=>'http://localhost/facebook/logout.php');
      $logoutUrl = $facebook->getLogoutUrl($logout_params);
    } else {
        $login_params = array(
                            'scope' => 'email',
                            'display' => 'popup'
                            );
      $loginUrl = $facebook->getLoginUrl($login_params);
    }
    ..............
    et le fichier logout.php qui contient la deconnexion et la fermeture de la ssesion j'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php 
        session_start();            //start session
        $_SESSION = array();    //clear session array
        session_destroy();      //destroy session
    	header("Location: test.php");
    ?>
    et ça a bien fonctionné

    Merci tout le monde et bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Facebook Php SDK - getUser() retourne toujours 0
    Par aloisio11 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/04/2014, 17h00
  2. facebook connect PHP SDK
    Par Pierre4242 dans le forum Facebook
    Réponses: 0
    Dernier message: 18/03/2013, 17h45
  3. [Graph API] Afficher un mur Facebook sur un site
    Par Nheavy dans le forum Facebook
    Réponses: 1
    Dernier message: 12/12/2011, 17h16
  4. Utilisation de l'API Facebook PHP en local
    Par gawel1 dans le forum Langage
    Réponses: 1
    Dernier message: 02/12/2011, 16h34
  5. [Graph API] Afficher un mur Facebook sur un site
    Par Nheavy dans le forum APIs Réseaux sociaux
    Réponses: 0
    Dernier message: 12/10/2011, 21h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo