Bonjour à tous,

Je cherche partout sur le Web pour avoir une doc (voir une vidéo) en français et simple pour la dernière API Facebook. Car entre le dernier tuto de Grafikart et maintenant elle a beaucoup évoluée.

Déjà première chose je ne comprends pas comment récupéré le access_token. Après je ne peux pas savoir les autres soucis car je n'ai pas encore fais la suite.
En gros mon application devra juste récup l'image de profil Facebook. J'ai regardé ici : https://developers.facebook.com/tools/explorer/ pour savoir comment le récup.

J'espère que l'un de vous aura des adresses ou aura le temps de m'expliquer comment faire car là je butte depuis une semaine sur la première étape.

Merci d'avance

17 réponses


Où est ce que tu en est exactement ??
Est ce que tu à créer ton application ?
Est ce que tu peux poster les différentes méthodes que tu a déjà testées ??

Pour le moment je suis en phase de test pour voir comment elle fonctionne donc c'est normal que se soit moche :

<?php
    session_start();
    require_once 'Facebook/autoload.php';
    use Facebook\FacebookSession;
    use Facebook\FacebookRedirectLoginHelper;
    FacebookSession::setDefaultApplication('aaa','bbb');
    $session = new FacebookSession('access-token-here');
    $helper = new FacebookRedirectLoginHelper('test.php');
    $loginUrl = $helper->getLoginUrl();

?>

Mais bon je pige pas du tout comment elle fonctionne

Juste pour te mettre au parfum par rapport à la direction que tu prend :
Pose toi bien cette question : est ce que j'ai réellement besoin de ce script ? Est ce que je ne peux pas faire autrement ??
Cette API est quelques chose de très chiant à mettre en place et à maintenir... car elle change souvent.

La doc est difficilement compréhensible, elle est rédigée en geek californien... et les forums sont blindés de sujets restés désespérément sans réponse...

Donc si tu est vraiment sur de ne pas avoir d'autres alternative... ou que tu est quelqu'un de vraiment curieux , vas y lance toi !

En fait il faut commencer par créer une application par le biais d'un compte développeur, c'est là que tu récupère les fameuses valeurs 'APP_ID' et 'APP_SECRET'. Il me semble que c'est aussi là que tu détermine qu'elles seront les informations que l'application devra récupérer.

Ensuite il faut accéder à la session Facebook. Pour ce faire il faut commencer par instancier "FacebookRedirectLoginHelper", tu peux mettre en paramètre l'url vers laquelle l'utilisateur sera redirigé après la connexion. Ensuite il faut rediriger ton utilisateur vers le formulaire de connexion dont l'url est générée par la méthode getLoginUrl(). En générale la page de connexion est affichée dans une popup.

Une fois que la session est connectée et que l’utilisateur a autorisé ton application, tu devrais pouvoir accéder au contenu voulu.

Bonne après-midi :-)

Ok bon déjà mon application elle est déjà créée et j'ai les autorisations pour récup ce que je veux.

En gros j'ai un site Internet qui propose de créer une image à partir de l'image de profil de l'utilisateur. Si j'ai un autre moyen de récup son image je suis pour. Car oui je suis d'accord avec toi sur le fait qu'elle rédigé en geek californien (j'ai trouvé un article disant que c'est la pire API du monde pour les dev).

Du coup tu as une autre solution à me proposer ?

Ben non c'est nickel, si tu a réussi a récupérer l'image de profil je vois pas ce que tu pourrais faire de mieux...

Félicitations à toi !

Non justement c'est ce que je veux faire, j'ai même pas réussis à récup le access token, tu m'as mal compris

Personne ?

"Ensuite il faut accéder à la session Facebook. Pour ce faire il faut commencer par instancier "FacebookRedirectLoginHelper", tu peux mettre en paramètre l'url vers laquelle l'utilisateur sera redirigé après la connexion. Ensuite il faut rediriger ton utilisateur vers le formulaire de connexion dont l'url est générée par la méthode getLoginUrl(). En générale la page de connexion est affichée dans une popup.

Une fois que la session est connectée et que l’utilisateur a autorisé ton application, tu devrais pouvoir accéder au contenu voulu."

Est ce que tu a créé une session Facebook l'aide de la class "FacebookRedirectLoginHelper" ??

Oui ok, mais là je pige rien du tout. Pas les termes PHP mais le système mis en place par FB.
L'API YouTube de Google est 1000 fois plus simple ...

Je pense que je vais abandonner, ou alors je vais attendre de trouver un tuto vidéo ou texte pour faire ça

Comme je te l'ai dit plus haut faut vraiment être motivé pour utiliser cette API !!

Je vais essayé de te faire une classe mais je ne te promet rien !!

Oui après avoir bien parcouru le web, j'ai bien vu qu'il fallait être motivé.

Merci pour la classe mais si jamais c'est trop complexe, laisse tomber. Pour le moment l'utilisateur upload son image via son PC et ça fonctionne très bien

Ne t'inquiète pas, je vais pas y passer 3h, je vais tenté le coup si je vois que c'est le bordel dès le départ je laisse tomber...

Salut, tu as pu faire une classe ou pas au fait ?

Non désolé j'ai un peu lâché l'affaire... apparemment ils ont encore fait une nouvelle version... je ne retrouve pas du tout ce que j'avais déjà testé...

En fait la version PHP de on serveur Wamp n'est pas assez récente, du coup j'ai essayé sur un serveur distant mais j'ai même pas réussi à instancier l'API... désolé mais c'est vraiment de la m***e lol. Apparemment il faut utiliser composer mais je n'ai pas le temps de me former la dessus.

En plus j'ai reçus un mail d'un contact qui voudrais faire ce que tu veux faire mais tous les développeurs qu'il a contacté ont botté en touche, ou alors on lui demande une somme astronomique... ça veut tout dire :-)

Ok bah tant pis alors, merci bien, je me doutais bien que c'était pas possible ou très chiant.

J'ai supprimé la fonction de toute façon car je ne trouvais pas de solution.
Le laisse le sujet sans réponse validé car il n'est résolu

Si un jour quelqu'un trouve un moyen plus simple ...

Je viens de me rendre compte que la version 3.2.3 du SDK est encore dispo..., du coup je l'ai installée et j'ai pu reprendre mon état d'avancement... j'ai créé la classe. J'ai réussi à me connecter à mon application, il ne me reste plus qu'à récupérer la photo de profil.

Je vais avancé à mon rythme petit à petit... pour pas que ça me prenne trop la tête.

Si tu trouve la méthode dans la doc' fais moi signe.

Voici ce que ça donne pour l'instant :

<?php

require_once("/src/facebook.php");
class getFacebook {

    private $app_id = '000000000000'; //Id application
    private $app_secret = '545454d4sf4s5df'; //Clé secrète de l'application

    private $fb_obj = FALSE;

    public function loginUrl() {

                //Créer une page "connecte.php" avec un message + les infos utilisateur pour être sur que le user est bien connecté à l'application
        $login_url_config = array('scope' => 'public_profile', 
                      'redirect_uri' => 'http://localhost/facebook/connecte.php'
        );

        return $this->fb_obj->getLoginUrl($login_url_config);

    }

    public function getProfilPicture() {

        //Récupération image profil

    }

    public function userId() {

        return $this->fb_obj->getUser(); 

    }

    public function __construct() {

        $config = array(
            'appId' => $this->app_id,
            'secret' => $this->app_secret,
            'fileUpload' => false, // optional
            'allowSignedRequest' => false, // optional, but should be set to false for non-canvas apps
        );
        $this->fb_obj = new Facebook($config);

    }

}

$fb = new getFacebook();

var_dump($fb->loginUrl());
var_dump($fb->userId());

?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Récupération photo profil Facebook</title>

    </head>

    <body>

        <?php if($fb->userId() == 0) : ?> <a href="#" id="app-connect">Connexion à l'application</a>

        <?php else : ?>

        <h3>Photo du profil</h3>

        <img src="<?php print $fb->getProfilPicture(); ?>" />

        <?php endif; ?>

        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <script type="text/javascript">

            $('#app-connect').on('click', function(event){

                var appConnectUrl = '<?php print $fb->loginUrl();?>';

                var windowName = "popUp";//$(this).attr("name");
                var windowSize = "width=800,height=500";

                window.open(appConnectUrl, windowName, windowSize);

                event.preventDefault();
                return false;

            });

        </script>

    </body>

</html>

Voilà c'est pas encore bien fonctionnel mais c'est un bon début !

J’espère que cette version va être maintenu le plus longtemps possible... parce que la v4 çà à l'air très corsée !

Cool, merci je testerai ça dans les prochains jours